#! /usr/bin/cfengine -qf

control:
	OutputPrefix	= ("${cf_prefix}")
	domainname	= ('dnsdomainname')
	actionsequence	= (
		editfiles
		shellcommands
		processes
		)
	AddInstallable	= ( amavis_reload )
	EditfileSize	= ( 80000 )

editfiles:
    any::
	{ /etc/amavis/amavisd.conf
		DefineClasses "amavis_reload"
		#
		# $mydomain = '$(maildomain)';
		#
		WarnIfNoLineMatching "^[[:blank:]]*\$mydomain[[:blank:]].*"
		LocateLineMatching "^[[:blank:]]*\$mydomain[[:blank:]].*"
		BeginGroupIfNoLineMatching "^[[:blank:]]*\$mydomain[[:blank:]]*=[[:blank:]]*'$(domainname)';[[:blank:]]*.*"
			ReplaceLineWith "$mydomain = '$(domainname)'; # Edited by cfengine"
		EndGroup
		#
		# Make space for cfengine hacks near EOF
		#
		ResetSearch "1"
		BeginGroupIfNoSuchLine "# BEGIN CFENGINE"
			WarnIfNoLineMatching "^1;[[:blank:]]*# insure a defined return$"
			BeginGroupIfNoLineMatching "^# BEGIN CFENGINE$"
				LocateLineMatching "^1;[[:blank:]]*# insure a defined return$"
				IncrementPointer "-1"
				InsertLine ""
				InsertLine "# BEGIN CFENGINE"
				InsertLine "# END CFENGINE"
				InsertLine ""
			EndGroup
		EndGroup
		#
		# my $config_file_addon="/etc/local-COMMON/amavis/amavisd.conf.addon";
		# -f $config_file_addon or die "Cannot find config file $config_file_addon";
		# do $config_file_addon or die "Error in config file $config_file_addon: $@";
		#
		ResetSearch "1"
		AbortAtLineMatching "^# END CFENGINE$"
		LocateLineMatching "^# BEGIN CFENGINE$"
		BeginGroupIfNoLineMatching '^[[:blank:]]*my $config_file_addon[[:blank:]]*=[[:blank:]]*"/etc/local-COMMON/amavis/amavisd.conf.addon";'
			InsertLine 'my $config_file_addon="/etc/local-COMMON/amavis/amavisd.conf.addon";'
			InsertLine '-f $config_file_addon or die "Cannot find config file $config_file_addon";'
			InsertLine 'do $config_file_addon or die "Error in config file $config_file_addon: $@";'
		EndGroup
		UnsetAbort "^# END CFENGINE$"
	}
processes:
	"amavisd"	restart "/etc/init.d/amavis restart"
shellcommands:
    amavis_reload::
	"/etc/init.d/amavis force-reload"