diff options
author | tv <tv@krebsco.de> | 2017-07-22 23:44:23 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2017-07-23 01:35:46 +0200 |
commit | a942b33f04f2dc6a10023f86a3a1775eda9186c9 (patch) | |
tree | 59e7fb0386ad5e6a1170041b45ee0ae72baef94d | |
parent | 29ae8b026ccd92807e84c1c7c492167f9a97ff3c (diff) |
shell: add get-source command
-rw-r--r-- | shell.nix | 28 |
1 files changed, 21 insertions, 7 deletions
@@ -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" \ |