control:
	AddInstallable = ( samba samba_reload netatalk netatalk_reload lprng lprng_reload cups cups_reload )
	
	#
	# Variables for shares
	# You can change the paths here and it will be changed both in
	# the conf file and in the filesystem - But once it is implemented,
	# it is not wise to change it - the data in the shares doesn't get
	# moved!
	# You can change the rights on the shares in the "directories:"
	# section.
	#
	netlogshare	= ( /etc/samba/netlogon )
	commonsharedir	= ( /home/fsadmin/COMMON )
	datashare 	= ( /home/fsadmin/COMMON/documents )
	softshare	= ( /home/fsadmin/COMMON/software )
	profshare	= ( /home/fsadmin/COMMON/samba/userprofiles )
	privpcshare	= ( .pcshare )
	privmacshare	= ( .macshare )
	privxchngshare	= ( .xchangeshare )
	
	#
	# Administrative user and group
	#
	adminuser	= ( fsadmin )
	admingrp	= ( fsadmin )
	
editfiles:
    samba::
	    { /etc/samba/smb-shares-$(site).conf
		#
		# This file contains the shares common to a site.
		# We check if the proper sections are there and add them if they
		# isn't. We don't check the file line for line.
		#
		AutoCreate
		#
		# [netlogon]
		#
		BeginGroupIfNoLineMatching "^\[netlogon\]"
			Append '[netlogon]'
			Append '	comment = Network logon'
			Append '	path = $(netlogshare)'
			Append '	browsable = no'
			Append '	writeable = no'
			Append '	share modes = no'
		EndGroup
		#
		# [userprofiles]
		#
		BeginGroupIfNoLineMatching "^\[userprofiles\]"
			Append '[userprofiles]'
			Append '	path = $(profshare)'
			Append '	force user = %u'
			Append '	writable = yes'
			Append '	browsable = yes'
			Append '	root preexec = '/bin/mkdir $(profshare)/%U \'
			Append '		    /bin/chown %U $(profshare)/%U \'
			Append '		    /bin/chmod 700 $(profshare)/%U''
		EndGroup
		#
		# [homes]
		#
		BeginGroupIfNoLineMatching "^\[homes\]"
			Append '[homes]'
			Append '	path = %H/$(privpcshare)'
			Append '	browsable = no'
			Append '	writeable = yes'
			Append '	root preexec = '/bin/mkdir %H/$(privpcshare) \'
			Append '		    /bin/chown %S %H/$(privpcshare) \'
			Append '		    /bin/chmod 700 %H/$(privpcshare)''
		EndGroup
		#
		# [programmer]
		#
		BeginGroupIfNoLineMatching "^\[software\]"
			Append '[software]'
			Append '	path = $(softshare)'
			Append '	comment = F�lles software for Xenux ApS'
			Append '	browsable = yes'
			Append '	guest ok = no'
			Append '	writeable = yes'
			Append '	create mask = 0660'
			Append '	directory mask = 0770'
			Append '	valid users = @$(admingrp)'
			Append '	force group = +$(admingrp)'
			Append '	delete veto files = Yes'
			Append '	veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/'
		EndGroup
		#
		# [dokumenter]
		#
		BeginGroupIfNoLineMatching "^\[dokumenter\]"
			Append '[dokumenter]'
			Append '	path = $(datashare)'
			Append '	comment = F�lles dokumenter for Xenux ApS'
			Append '	browsable = yes'
			Append '	guest ok = no'
			Append '	writeable = yes'
			Append '	create mask = 0660'
			Append '	directory mask = 0770'
			Append '	valid users = @$(admingrp)'
			Append '	force group = +$(admingrp)'
			Append '	delete veto files = Yes'
			Append '	veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/'
		EndGroup
		#
		# [fs-programmer]
		#
		BeginGroupIfNoLineMatching "^\[fssoftware\]"
			Append '[fssoftware]'
			Append '	path = /home/finn/documents'
			Append '	comment = F�lles software for Finn Strandgaard A/S'
			Append '	browsable = yes'
			Append '	guest ok = no'
			Append '	writeable = yes'
			Append '	create mask = 0660'
			Append '	directory mask = 0770'
			Append '	valid users = @finn'
			Append '	force group = +$finn'
			Append '	delete veto files = Yes'
			Append '	veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/'
		EndGroup
		#
		# [fsdokumenter]
		#
		BeginGroupIfNoLineMatching "^\[fsdokumenter\]"
			Append '[fsdokumenter]'
			Append '	path = /home/finn/software'
			Append '	comment = F�lles dokumenter for Finn Strandgaard A/S'
			Append '	browsable = yes'
			Append '	guest ok = no'
			Append '	writeable = yes'
			Append '	create mask = 0660'
			Append '	directory mask = 0770'
			Append '	valid users = @finn'
			Append '	force group = +finn'
			Append '	delete veto files = Yes'
			Append '	veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/'
		EndGroup
		#
		# [media]
		#
		BeginGroupIfNoLineMatching "^\[media\]"
			Append '[media]'
			Append '    	comment = Mp3 filer, film, spil etc.'
			Append '    	path = /home/jrisch/media'
			Append '    	public = no'
			Append '    	valid users = @mp3'
			Append '    	force group = +mp3'
			Append '    	writable = yes'
			Append '    	create mask = 0660'
			Append '    	directory mask = 0770'
		EndGroup

		DefineClasses "samba_reload"
	    }

    samba_reload::
	    { /etc/samba/smb-shares-$(site).conf
			LocateLineMatching "^; EDITED BY CFENGINE .*"
			ReplaceAll '; EDITED BY CFENGINE .*$' With '; EDITED BY CFENGINE $(date)'
			CatchAbort
			BeginGroupIfNoMatch "^; EDITED BY CFENGINE .*"
			    Append '; EDITED BY CFENGINE $(date)'
			EndGroup
	    }

directories:
    any::
	$(commonsharedir)
		mode=755
		owner=$(adminuser)
		group=$(admingrp)
	$(softshare)
		mode=775
		owner=$(adminuser)
		group=$(admingrp)
	$(datashare)
		mode=775
		owner=$(adminuser)
		group=$(admingrp)
    samba::
	$(netlogshare)
		mode=755
		owner=root
		group=root
	$(profshare)
		mode=777
		owner=$(adminuser)
		group=$(admingrp)

processes:
	"smbd"	restart "/etc/init.d/samba restart"

shellcommands:
    samba_reload::
	"/etc/init.d/samba force-reload"