diff options
author | John Ericson <git@JohnEricson.me> | 2020-04-18 00:10:08 -0400 |
---|---|---|
committer | John Ericson <git@JohnEricson.me> | 2020-04-18 00:10:08 -0400 |
commit | e3d50e5cb0ad9de55f0ea3a01fd837667b038a48 (patch) | |
tree | 14872848a275d7768dbbe57d144de470383401b6 /nixos/modules/services | |
parent | cc880cd91f73267aee4ee10aefff3271d319d63a (diff) | |
parent | 68a4ca45e07a0c6081264cf1c13d63f99c7fa15c (diff) | |
download | nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar.gz nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar.bz2 nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar.lz nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar.xz nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.tar.zst nixlib-e3d50e5cb0ad9de55f0ea3a01fd837667b038a48.zip |
Merge branch 'master' of github.com:NixOS/nixpkgs into staging
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/torrent/deluge.nix | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix index 0c72505395dd..2f1e7300ca38 100644 --- a/nixos/modules/services/torrent/deluge.nix +++ b/nixos/modules/services/torrent/deluge.nix @@ -5,6 +5,7 @@ with lib; let cfg = config.services.deluge; cfg_web = config.services.deluge.web; + isDeluge1 = versionOlder cfg.package.version "2.0.0"; openFilesLimit = 4096; listenPortsDefault = [ 6881 6889 ]; @@ -18,11 +19,11 @@ let preStart = if cfg.declarative then '' if [ -e ${declarativeLockFile} ]; then # Was declarative before, no need to back up anything - ln -sf ${configFile} ${configDir}/core.conf + ${if isDeluge1 then "ln -sf" else "cp"} ${configFile} ${configDir}/core.conf ln -sf ${cfg.authFile} ${configDir}/auth else # Declarative for the first time, backup stateful files - ln -sb --suffix=.stateful ${configFile} ${configDir}/core.conf + ${if isDeluge1 then "ln -s" else "cp"} -b --suffix=.stateful ${configFile} ${configDir}/core.conf ln -sb --suffix=.stateful ${cfg.authFile} ${configDir}/auth echo "Autogenerated file that signifies that this server configuration is managed declaratively by NixOS" \ > ${declarativeLockFile} @@ -144,6 +145,14 @@ in { This always contains unzip, gnutar, xz, p7zip and bzip2. ''; }; + + package = mkOption { + type = types.package; + example = literalExample "pkgs.deluge-1_x"; + description = '' + Deluge package to use. + ''; + }; }; deluge.web = { @@ -170,6 +179,13 @@ in { config = mkIf cfg.enable { + services.deluge.package = mkDefault ( + if versionAtLeast config.system.stateVersion "20.09" then + pkgs.deluge-2_x + else + pkgs.deluge-1_x + ); + # Provide a default set of `extraPackages`. services.deluge.extraPackages = with pkgs; [ unzip gnutar xz p7zip bzip2 ]; @@ -189,10 +205,10 @@ in { after = [ "network.target" ]; description = "Deluge BitTorrent Daemon"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ] ++ cfg.extraPackages; + path = [ cfg.package ] ++ cfg.extraPackages; serviceConfig = { ExecStart = '' - ${pkgs.deluge}/bin/deluged \ + ${cfg.package}/bin/deluged \ --do-not-daemonize \ --config ${configDir} ''; @@ -212,10 +228,11 @@ in { requires = [ "deluged.service" ]; description = "Deluge BitTorrent WebUI"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ]; + path = [ cfg.package ]; serviceConfig = { ExecStart = '' - ${pkgs.deluge}/bin/deluge-web \ + ${cfg.package}/bin/deluge-web \ + ${optionalString (!isDeluge1) "--do-not-daemonize"} \ --config ${configDir} \ --port ${toString cfg.web.port} ''; @@ -234,7 +251,7 @@ in { }) ]; - environment.systemPackages = [ pkgs.deluge ]; + environment.systemPackages = [ cfg.package ]; users.users = mkIf (cfg.user == "deluge") { deluge = { |