summary refs log tree commit diff
path: root/nixos/modules/services/network-filesystems
diff options
context:
space:
mode:
authorMaximilian Güntner <code@sourcediver.org>2017-01-13 19:28:06 +0100
committerMaximilian Güntner <code@sourcediver.org>2017-01-14 04:01:43 +0100
commita541f86f8b6095eaa4ee576d2655a0fe8dc9dad9 (patch)
tree80cffe58999f3a4b2572bd02564d7946d2c0750d /nixos/modules/services/network-filesystems
parenta652099c46ceffe4b578e49a9870dedee6232a0a (diff)
downloadnixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar.gz
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar.bz2
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar.lz
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar.xz
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.tar.zst
nixlib-a541f86f8b6095eaa4ee576d2655a0fe8dc9dad9.zip
services: ipfs: add emptyRepo option, refactor
Diffstat (limited to 'nixos/modules/services/network-filesystems')
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix29
1 files changed, 19 insertions, 10 deletions
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 104b5b92620e..d43147a16f31 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -67,6 +67,14 @@ in
         '';
       };
 
+      emptyRepo = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          If set to true, the repo won't be initialized with help files
+        '';
+      };
+
       extraFlags = mkOption {
         type = types.listOf types.str;
         description = "Extra flags passed to the IPFS daemon";
@@ -103,16 +111,17 @@ in
       after = [ "network.target" "local-fs.target" ];
       path  = [ pkgs.ipfs pkgs.su pkgs.bash ];
 
-      preStart =
-        ''
-          install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}
-          if [[ ! -d ${cfg.dataDir}/.ipfs ]]; then
-            cd ${cfg.dataDir}
-            ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c "${ipfs}/bin/ipfs init"
-          fi
-          ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c "${ipfs}/bin/ipfs config Addresses.API ${cfg.apiAddress}"
-          ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c "${ipfs}/bin/ipfs config Addresses.Gateway ${cfg.gatewayAddress}"
-        '';
+      preStart = ''
+        install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}
+        if [[ ! -d ${cfg.dataDir}/.ipfs ]]; then
+          cd ${cfg.dataDir}
+          ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c \
+             "${ipfs}/bin/ipfs init ${if cfg.emptyRepo then "-e" else ""}"
+        fi
+        ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c \
+           "${ipfs}/bin/ipfs --local config Addresses.API ${cfg.apiAddress} && \
+            ${ipfs}/bin/ipfs --local config Addresses.Gateway ${cfg.gatewayAddress}"
+      '';
 
       serviceConfig = {
         ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags}";