Convert "samba"

svn path=/nixos/branches/fix-style/; revision=14386
This commit is contained in:
Marc Weber 2009-03-06 12:26:50 +00:00
parent e0240ddf3d
commit e6144b4763
3 changed files with 69 additions and 52 deletions

View File

@ -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 = { ircdHybrid = {
enable = mkOption { enable = mkOption {
@ -983,6 +971,7 @@ in
(import ../upstart-jobs/vsftpd.nix) (import ../upstart-jobs/vsftpd.nix)
(import ../upstart-jobs/cupsd.nix) # CUPS printing daemon (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/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 # nix
(import ../upstart-jobs/nix.nix) # nix options and daemon (import ../upstart-jobs/nix.nix) # nix options and daemon

View File

@ -149,13 +149,6 @@ let
inherit config pkgs; inherit config pkgs;
}) })
# Samba service.
++ optional config.services.samba.enable
(import ../upstart-jobs/samba.nix {
inherit pkgs;
inherit (pkgs) glibc samba;
})
# X Font Server # X Font Server
++ optional config.services.xfs.enable ++ optional config.services.xfs.enable
(import ../upstart-jobs/xfs.nix { (import ../upstart-jobs/xfs.nix {

View File

@ -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 let
@ -7,52 +29,65 @@ let
smbConfig = ./smb.conf ; smbConfig = ./smb.conf ;
inherit (pkgs) samba;
in in
{
name = "samba";
users = [
{ name = user;
description = "Samba service user"; mkIf config.services.samba.enable {
group = group; require = [
} options
]; ];
groups = [ users = {
{ name = group; extraUsers = [
} { name = user;
]; description = "Samba service user";
group = group;
}
];
job = " extraGroups = [
{ name = group;
}
];
};
description \"Samba Service\" services = {
extraJobs = [{
name = "samba";
job = ''
start on network-interfaces/started description "Samba Service"
stop on network-interfaces/stop
start script start on network-interfaces/started
stop on network-interfaces/stop
if ! test -d /home/smbd ; then start script
mkdir -p /home/smbd
chown ${user} /home/smbd
chmod a+rwx /home/smbd
fi
if ! test -d /var/samba ; then if ! test -d /home/smbd ; then
mkdir -p /var/samba/locks /var/samba/cores/nmbd /var/samba/cores/smbd /var/samba/cores/winbindd mkdir -p /home/smbd
fi chown ${user} /home/smbd
chmod a+rwx /home/smbd
fi
${samba}/sbin/nmbd -D -s ${smbConfig} & if ! test -d /var/samba ; then
${samba}/sbin/smbd -D -s ${smbConfig} & mkdir -p /var/samba/locks /var/samba/cores/nmbd /var/samba/cores/smbd /var/samba/cores/winbindd
${samba}/sbin/winbindd -B -s ${smbConfig} & fi
ln -fs ${smbConfig} /var/samba/config ${samba}/sbin/nmbd -D -s ${smbConfig} &
${samba}/sbin/smbd -D -s ${smbConfig} &
${samba}/sbin/winbindd -B -s ${smbConfig} &
end script ln -fs ${smbConfig} /var/samba/config
respawn ${samba}/sbin/nmbd -D -s ${smbConfig} &; ${samba}/sbin/smbd -D -s ${smbConfig} &; ${samba}/sbin/winbindd -B & end script
"; respawn ${samba}/sbin/nmbd -D -s ${smbConfig} &; ${samba}/sbin/smbd -D -s ${smbConfig} &; ${samba}/sbin/winbindd -B &
'';
}];
};
} }