diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2017-05-10 07:19:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-10 07:19:23 +0100 |
commit | 7b211da119589fa5d2889a0e399f208ba56149d3 (patch) | |
tree | a915a155a489410a6e6a56c53a98e1e218b20d7b | |
parent | c6c7197c7dc5355ff587da9996330bb72afcb8f7 (diff) | |
parent | 91ee3530a721b51fff72ddedea41172aab08b151 (diff) | |
download | nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar.gz nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar.bz2 nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar.lz nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar.xz nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.tar.zst nixpkgs-7b211da119589fa5d2889a0e399f208ba56149d3.zip |
Merge pull request #25531 from Infinisil/fix/ipfs-dataDir
ipfs service: Fix dataDir being ignored
-rw-r--r-- | nixos/modules/services/network-filesystems/ipfs.nix | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index e6e04248854..bd46147c6bc 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -3,12 +3,19 @@ with lib; let - inherit (pkgs) ipfs; + inherit (pkgs) ipfs runCommand makeWrapper; cfg = config.services.ipfs; ipfsFlags = ''${if cfg.autoMigrate then "--migrate" else ""} ${if cfg.enableGC then "--enable-gc" else ""} ${toString cfg.extraFlags}''; + pathEnv = { IPFS_PATH = cfg.dataDir; }; + + # Wrapping the ipfs binary with the environment variable IPFS_PATH set to dataDir because we can't set it in the user environment + wrapped = runCommand "ipfs" { buildInputs = [ makeWrapper ]; } '' + mkdir -p "$out/bin" + makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" --set IPFS_PATH ${cfg.dataDir} + ''; in { @@ -86,7 +93,7 @@ in ###### implementation config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.ipfs ]; + environment.systemPackages = [ wrapped ]; users.extraUsers = mkIf (cfg.user == "ipfs") { ipfs = { @@ -116,9 +123,10 @@ in install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir} ''; + environment = pathEnv; + script = '' if [[ ! -d ${cfg.dataDir}/.ipfs ]]; then - cd ${cfg.dataDir} ${ipfs}/bin/ipfs init ${optionalString cfg.emptyRepo "-e"} fi ${ipfs}/bin/ipfs --local config Addresses.API ${cfg.apiAddress} @@ -145,6 +153,8 @@ in path = [ pkgs.ipfs ]; + environment = pathEnv; + serviceConfig = { ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags}"; User = cfg.user; @@ -164,6 +174,8 @@ in path = [ pkgs.ipfs ]; + environment = pathEnv; + serviceConfig = { ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags} --offline"; User = cfg.user; |