]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - nixops/scripts/nixops_wrap
e4f5dc5e94c51f9df2f5f34c90ba5189a11e47f5
[perso/Immae/Config/Nix.git] / nixops / scripts / nixops_wrap
1 #!/bin/bash
2
3 DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
4 if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
5 echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
6 exit 1;
7 fi
8
9 TEMP=$(mktemp -d /tmp/XXXXXX-nixops-files)
10 chmod go-rwx $TEMP
11
12 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
13 nixops="$(nix-build --no-out-link -A nixops "$(dirname $(dirname $DIR))")/bin/nixops"
14
15 finish() {
16 rm -rf "$TEMP"
17 $nixops set-args --unset privateFiles
18 }
19
20 trap finish EXIT
21
22 export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
23 export NIXOPS_DEPLOYMENT="$DeploymentUuid"
24
25 # pass cannot "just" list files in a directory without showing a tree :(
26 files=$(pass ls $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files | sed -e '1d' -e 's/^.* //')
27
28 for file in $files; do
29 pass show "$NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files/$file" > $TEMP/$file
30 done
31 $nixops set-args --argstr privateFiles "$TEMP"
32
33 source $(dirname $(dirname $DIR))/nix_path_env
34 # __noChroot: ssh-config-file requires relaxed
35 export NIX_PATH="ssh-config-file=$(dirname $DIR)/ssh/config:$NIX_PATH"
36 $nixops "$@"