]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/scripts/nixops_wrap
Refactor configuration and overlays
[perso/Immae/Config/Nix.git] / nixops / scripts / nixops_wrap
index 1efe8a9bc082870b10b0a88be7abac701d2dbbd7..d03784e78c3fa575217f6d37a795aca0be72d171 100755 (executable)
@@ -1,21 +1,36 @@
 #!/bin/bash
 
+DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
 if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
   echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
   exit 1;
 fi
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+source $(dirname $(dirname $DIR))/nix_path_env
+nixops="$(nix-build --no-out-link "$(dirname $DIR)/custom_nixops.nix")/bin/nixops"
 
-TEMP=$(mktemp /tmp/XXXXXX-environment.nix)
+TEMP=$(mktemp -d /tmp/XXXXXX-nixops-files)
 chmod go-rwx $TEMP
 
+# __noChroot: ssh-config-file requires relaxed
+export NIX_PATH="ssh-config-file=$(dirname $DIR)/ssh/config:$NIX_PATH"
+
+
 finish() {
-  rm -f "$TEMP"
-  nixops set-args --unset environment
+  rm -rf "$TEMP"
+  $nixops set-args --unset privateFiles
 }
 
 trap finish EXIT
 
-pass show "$NIXOPS_CONFIG_PASS_SUBTREE_PATH/NixConfig" >> $TEMP
-nixops set-args --argstr environment "$TEMP"
+# pass cannot "just" list files in a directory without showing a tree :(
+files=$(pass ls $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files | sed -e '1d' -e 's/^.* //')
+
+for file in $files; do
+  pass show "$NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files/$file" > $TEMP/$file
+done
+$nixops set-args --argstr privateFiles "$TEMP"
 
-nixops "$@"
+$nixops "$@"