summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2017-07-22 23:44:23 +0200
committertv <tv@krebsco.de>2017-07-23 01:35:46 +0200
commit012c88846f05dbeaa98a282f50d961c7cf82efe8 (patch)
tree77cd22ad44f67937011195641f1f6222c9c0155f
parent2c7538b70e0c4120264b53e76968df567beeeb87 (diff)
shell: add get-source command
-rw-r--r--shell.nix28
1 files changed, 21 insertions, 7 deletions
diff --git a/shell.nix b/shell.nix
index 5ea9ff3..58b956c 100644
--- a/shell.nix
+++ b/shell.nix
@@ -2,6 +2,10 @@ let
lib = import ./lib;
pkgs = import <nixpkgs> { overlays = [(import ./krebs/5pkgs)]; };
+ #
+ # high level commands
+ #
+
# usage: deploy [--user=USER] --system=SYSTEM [--target=TARGET]
cmds.deploy = pkgs.writeDash "cmds.deploy" ''
set -efu
@@ -29,6 +33,22 @@ let
exec ${utils.build} config.system.build.toplevel
'';
+ #
+ # low level commands
+ #
+
+ # usage: get-source SOURCE_FILE
+ cmds.get-source = pkgs.writeDash "cmds.get-source" ''
+ set -efu
+ exec ${pkgs.nix}/bin/nix-instantiate \
+ --eval \
+ --json \
+ --readonly-mode \
+ --show-trace \
+ --strict \
+ "$1"
+ '';
+
init.args = pkgs.writeText "init.args" /* sh */ ''
args=$(${pkgs.utillinux}/bin/getopt -n "$command" -s sh \
-o s:t:u: \
@@ -90,13 +110,7 @@ let
};
populate = pkgs.writeDash "init.env.populate" ''
set -efu
- _source=$(${pkgs.nix}/bin/nix-instantiate \
- --eval \
- --json \
- --readonly-mode \
- --show-trace \
- --strict \
- "$source")
+ _source=$(get-source "$source")
echo $_source |
${pkgs.populate}/bin/populate \
"$target_user@$target_host:$target_port$target_path" \