From e6144b476332d60d9adc2b61e21bae7f43528d8e Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Fri, 6 Mar 2009 12:26:50 +0000 Subject: [PATCH] Convert "samba" svn path=/nixos/branches/fix-style/; revision=14386 --- system/options.nix | 13 +---- upstart-jobs/default.nix | 7 --- upstart-jobs/samba.nix | 101 ++++++++++++++++++++++++++------------- 3 files changed, 69 insertions(+), 52 deletions(-) diff --git a/system/options.nix b/system/options.nix index 099e99f77e7..7eb77868e69 100644 --- a/system/options.nix +++ b/system/options.nix @@ -479,18 +479,6 @@ in }; - samba = { - - enable = mkOption { - default = false; - description = " - Whether to enable the samba server. (to communicate with, and provide windows shares) - "; - }; - - }; - - ircdHybrid = { enable = mkOption { @@ -983,6 +971,7 @@ in (import ../upstart-jobs/vsftpd.nix) (import ../upstart-jobs/cupsd.nix) # CUPS printing daemon (import ../upstart-jobs/udev.nix) # The udev daemon creates devices nodes and runs programs when hardware events occur. + (import ../upstart-jobs/samba.nix) # TODO: doesn't start here (?) # nix (import ../upstart-jobs/nix.nix) # nix options and daemon diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 43230ec505a..6c6b3293f75 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -149,13 +149,6 @@ let inherit config pkgs; }) - # Samba service. - ++ optional config.services.samba.enable - (import ../upstart-jobs/samba.nix { - inherit pkgs; - inherit (pkgs) glibc samba; - }) - # X Font Server ++ optional config.services.xfs.enable (import ../upstart-jobs/xfs.nix { diff --git a/upstart-jobs/samba.nix b/upstart-jobs/samba.nix index b1371c6f0f5..90f09a3bdd6 100644 --- a/upstart-jobs/samba.nix +++ b/upstart-jobs/samba.nix @@ -1,4 +1,26 @@ -{pkgs, samba, glibc}: +{pkgs, config, ...}: + +###### interface +let + inherit (pkgs.lib) mkOption mkIf; + + options = { + services = { + samba = { + + enable = mkOption { + default = false; + description = " + Whether to enable the samba server. (to communicate with, and provide windows shares) + "; + }; + + }; + }; + }; +in + +###### implementation let @@ -7,52 +29,65 @@ let smbConfig = ./smb.conf ; + inherit (pkgs) samba; + in -{ - name = "samba"; - users = [ - { name = user; - description = "Samba service user"; - group = group; - } - ]; - groups = [ - { name = group; - } + +mkIf config.services.samba.enable { + require = [ + options ]; - - job = " -description \"Samba Service\" + users = { + extraUsers = [ + { name = user; + description = "Samba service user"; + group = group; + } + ]; + + extraGroups = [ + { name = group; + } + ]; + }; -start on network-interfaces/started -stop on network-interfaces/stop + services = { + extraJobs = [{ + name = "samba"; + job = '' -start script + description "Samba Service" - if ! test -d /home/smbd ; then - mkdir -p /home/smbd - chown ${user} /home/smbd - chmod a+rwx /home/smbd - fi + start on network-interfaces/started + stop on network-interfaces/stop - if ! test -d /var/samba ; then - mkdir -p /var/samba/locks /var/samba/cores/nmbd /var/samba/cores/smbd /var/samba/cores/winbindd - fi + start script - ${samba}/sbin/nmbd -D -s ${smbConfig} & - ${samba}/sbin/smbd -D -s ${smbConfig} & - ${samba}/sbin/winbindd -B -s ${smbConfig} & + if ! test -d /home/smbd ; then + mkdir -p /home/smbd + chown ${user} /home/smbd + chmod a+rwx /home/smbd + fi - ln -fs ${smbConfig} /var/samba/config + if ! test -d /var/samba ; then + mkdir -p /var/samba/locks /var/samba/cores/nmbd /var/samba/cores/smbd /var/samba/cores/winbindd + fi -end script + ${samba}/sbin/nmbd -D -s ${smbConfig} & + ${samba}/sbin/smbd -D -s ${smbConfig} & + ${samba}/sbin/winbindd -B -s ${smbConfig} & -respawn ${samba}/sbin/nmbd -D -s ${smbConfig} &; ${samba}/sbin/smbd -D -s ${smbConfig} &; ${samba}/sbin/winbindd -B & + ln -fs ${smbConfig} /var/samba/config - "; + end script + respawn ${samba}/sbin/nmbd -D -s ${smbConfig} &; ${samba}/sbin/smbd -D -s ${smbConfig} &; ${samba}/sbin/winbindd -B & + + ''; + }]; + }; }