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 | 012c88846f05dbeaa98a282f50d961c7cf82efe8 (patch) | |
| tree | 77cd22ad44f67937011195641f1f6222c9c0155f | |
| parent | 2c7538b70e0c4120264b53e76968df567beeeb87 (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" \  | 
