service.asterisk: add package option
This commit is contained in:
parent
59fd1c802e
commit
1b47bc9477
@ -17,7 +17,7 @@ let
|
|||||||
allConfFiles =
|
allConfFiles =
|
||||||
cfg.confFiles //
|
cfg.confFiles //
|
||||||
builtins.listToAttrs (map (x: { name = x;
|
builtins.listToAttrs (map (x: { name = x;
|
||||||
value = builtins.readFile (pkgs.asterisk + "/etc/asterisk/" + x); })
|
value = builtins.readFile (cfg.package + "/etc/asterisk/" + x); })
|
||||||
defaultConfFiles);
|
defaultConfFiles);
|
||||||
|
|
||||||
asteriskEtc = pkgs.stdenv.mkDerivation
|
asteriskEtc = pkgs.stdenv.mkDerivation
|
||||||
@ -38,7 +38,7 @@ let
|
|||||||
asteriskConf = ''
|
asteriskConf = ''
|
||||||
[directories]
|
[directories]
|
||||||
astetcdir => /etc/asterisk
|
astetcdir => /etc/asterisk
|
||||||
astmoddir => ${pkgs.asterisk}/lib/asterisk/modules
|
astmoddir => ${cfg.package}/lib/asterisk/modules
|
||||||
astvarlibdir => /var/lib/asterisk
|
astvarlibdir => /var/lib/asterisk
|
||||||
astdbdir => /var/lib/asterisk
|
astdbdir => /var/lib/asterisk
|
||||||
astkeydir => /var/lib/asterisk
|
astkeydir => /var/lib/asterisk
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
astspooldir => /var/spool/asterisk
|
astspooldir => /var/spool/asterisk
|
||||||
astrundir => /var/run/asterisk
|
astrundir => /var/run/asterisk
|
||||||
astlogdir => /var/log/asterisk
|
astlogdir => /var/log/asterisk
|
||||||
astsbindir => ${pkgs.asterisk}/sbin
|
astsbindir => ${cfg.package}/sbin
|
||||||
'';
|
'';
|
||||||
extraConf = cfg.extraConfig;
|
extraConf = cfg.extraConfig;
|
||||||
|
|
||||||
@ -197,11 +197,17 @@ in
|
|||||||
Additional command line arguments to pass to Asterisk.
|
Additional command line arguments to pass to Asterisk.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.asterisk;
|
||||||
|
defaultText = "pkgs.asterisk";
|
||||||
|
description = "The Asterisk package to use.";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = [ pkgs.asterisk ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
|
||||||
environment.etc.asterisk.source = asteriskEtc;
|
environment.etc.asterisk.source = asteriskEtc;
|
||||||
|
|
||||||
@ -234,7 +240,7 @@ in
|
|||||||
# TODO: Make exceptions for /var directories that likely should be updated
|
# TODO: Make exceptions for /var directories that likely should be updated
|
||||||
if [ ! -e "$d" ]; then
|
if [ ! -e "$d" ]; then
|
||||||
mkdir -p "$d"
|
mkdir -p "$d"
|
||||||
cp --recursive ${pkgs.asterisk}/"$d"/* "$d"/
|
cp --recursive ${cfg.package}/"$d"/* "$d"/
|
||||||
chown --recursive ${asteriskUser}:${asteriskGroup} "$d"
|
chown --recursive ${asteriskUser}:${asteriskGroup} "$d"
|
||||||
find "$d" -type d | xargs chmod 0755
|
find "$d" -type d | xargs chmod 0755
|
||||||
fi
|
fi
|
||||||
@ -247,8 +253,8 @@ in
|
|||||||
# FIXME: This doesn't account for arguments with spaces
|
# FIXME: This doesn't account for arguments with spaces
|
||||||
argString = concatStringsSep " " cfg.extraArguments;
|
argString = concatStringsSep " " cfg.extraArguments;
|
||||||
in
|
in
|
||||||
"${pkgs.asterisk}/bin/asterisk -U ${asteriskUser} -C /etc/asterisk/asterisk.conf ${argString} -F";
|
"${cfg.package}/bin/asterisk -U ${asteriskUser} -C /etc/asterisk/asterisk.conf ${argString} -F";
|
||||||
ExecReload = ''${pkgs.asterisk}/bin/asterisk -x "core reload"
|
ExecReload = ''${cfg.package}/bin/asterisk -x "core reload"
|
||||||
'';
|
'';
|
||||||
Type = "forking";
|
Type = "forking";
|
||||||
PIDFile = "/var/run/asterisk/asterisk.pid";
|
PIDFile = "/var/run/asterisk/asterisk.pid";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user