0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

nixos/modules/services/network-filesystems/ipfs: refactor

Add `package` option to change the package used for the service.
This commit is contained in:
Fabián Heredia Montiel 2020-11-03 17:35:06 -06:00
parent 13839daecc
commit acd3d3dd20

View file

@ -44,6 +44,13 @@ in {
enable = mkEnableOption "Interplanetary File System (WARNING: may cause severe network degredation)"; enable = mkEnableOption "Interplanetary File System (WARNING: may cause severe network degredation)";
package = mkOption {
type = types.package;
default = pkgs.ipfs;
defaultText = "pkgs.ipfs";
description = "Which IPFS package to use.";
};
user = mkOption { user = mkOption {
type = types.str; type = types.str;
default = "ipfs"; default = "ipfs";
@ -176,7 +183,7 @@ in {
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.ipfs ]; environment.systemPackages = [ cfg.package ];
environment.variables.IPFS_PATH = cfg.dataDir; environment.variables.IPFS_PATH = cfg.dataDir;
programs.fuse = mkIf cfg.autoMount { programs.fuse = mkIf cfg.autoMount {
@ -207,14 +214,14 @@ in {
"d '${cfg.ipnsMountDir}' - ${cfg.user} ${cfg.group} - -" "d '${cfg.ipnsMountDir}' - ${cfg.user} ${cfg.group} - -"
]; ];
systemd.packages = [ pkgs.ipfs ]; systemd.packages = [ cfg.package ];
systemd.services.ipfs-init = { systemd.services.ipfs-init = {
description = "IPFS Initializer"; description = "IPFS Initializer";
environment.IPFS_PATH = cfg.dataDir; environment.IPFS_PATH = cfg.dataDir;
path = [ pkgs.ipfs ]; path = [ cfg.package ];
script = '' script = ''
if [[ ! -f ${cfg.dataDir}/config ]]; then if [[ ! -f ${cfg.dataDir}/config ]]; then
@ -239,7 +246,7 @@ in {
}; };
systemd.services.ipfs = { systemd.services.ipfs = {
path = [ "/run/wrappers" pkgs.ipfs ]; path = [ "/run/wrappers" cfg.package ];
environment.IPFS_PATH = cfg.dataDir; environment.IPFS_PATH = cfg.dataDir;
wants = [ "ipfs-init.service" ]; wants = [ "ipfs-init.service" ];
@ -267,7 +274,7 @@ in {
cfg.extraConfig)) cfg.extraConfig))
); );
serviceConfig = { serviceConfig = {
ExecStart = ["" "${pkgs.ipfs}/bin/ipfs daemon ${ipfsFlags}"]; ExecStart = ["" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}"];
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
} // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; }; } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };