summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2015-10-09 14:08:06 +0200
committertv <tv@shackspace.de>2015-10-09 14:11:38 +0200
commit51e4b62de206cbf692e5f247d595c904c768e202 (patch)
treeca0a28fb0e5eec5783a1820f061327a9b71477da
parentf15864623a579f4af1c1b0cae14b5977283d52bd (diff)
krebs.github-host-sync.ssh-identity-file: fix type
-rw-r--r--krebs/3modules/github-hosts-sync.nix23
1 files changed, 8 insertions, 15 deletions
diff --git a/krebs/3modules/github-hosts-sync.nix b/krebs/3modules/github-hosts-sync.nix
index eaec0333a..4d4e21252 100644
--- a/krebs/3modules/github-hosts-sync.nix
+++ b/krebs/3modules/github-hosts-sync.nix
@@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
with builtins;
-with lib;
+with import ../4lib { inherit lib; };
let
cfg = config.krebs.github-hosts-sync;
@@ -21,7 +21,7 @@ let
default = "/var/lib/github-hosts-sync";
};
ssh-identity-file = mkOption {
- type = types.str; # TODO must be named *.ssh.{id_rsa,id_ed25519}
+ type = types.suffixed-str [".ssh.id_ed25519" ".ssh.id_rsa"];
default = toString <secrets/github-hosts-sync.ssh.id_rsa>;
};
};
@@ -42,16 +42,6 @@ let
#! /bin/sh
set -euf
- ssh_identity_file_target=$(
- case ${cfg.ssh-identity-file} in
- *.ssh.id_rsa|*.ssh.id_ed25519) echo ${cfg.dataDir}/.ssh/id_rsa;;
- *.ssh.id_ed25519) echo ${cfg.dataDir}/.ssh/id_ed25519;;
- *)
- echo "bad identity file name: ${cfg.ssh-identity-file}" >&2
- exit 1
- esac
- )
-
mkdir -p ${cfg.dataDir}
chown ${user.name}: ${cfg.dataDir}
@@ -59,7 +49,7 @@ let
-o ${user.name} \
-m 0400 \
${cfg.ssh-identity-file} \
- "$ssh_identity_file_target"
+ ${cfg.dataDir}/.ssh/${fileExtension cfg.ssh-identity-file}
'';
ExecStart = "${pkgs.github-hosts-sync}/bin/github-hosts-sync";
};
@@ -75,5 +65,8 @@ let
name = "github-hosts-sync";
uid = 3220554646; # genid github-hosts-sync
};
-in
-out
+
+ # TODO move to lib?
+ fileExtension = s: last (splitString "." s);
+
+in out