#!/bin/bash
-if [ -z "$NIXOPS_CONFIG_PASS_PATH" ]; then
- echo "Please set NIXOPS_CONFIG_PASS_PATH to the password-store environment file path"
+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
-TEMP=$(mktemp /tmp/XXXXXX-environment.nix)
+TEMP=$(mktemp -d /tmp/XXXXXX-nixops-files)
chmod go-rwx $TEMP
finish() {
- rm -f "$TEMP"
- nixops set-args --unset environment
+ rm -rf "$TEMP"
+ nixops set-args --unset privateFiles
+ nixops set-args --unset nixpkgsNext
}
trap finish EXIT
-pass show "$NIXOPS_CONFIG_PASS_PATH" >> $TEMP
-nixops set-args --argstr environment "$TEMP"
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+# 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 set-args --argstr nixpkgsNext "$HOME/.nix-defexpr/channels/immaeNixpkgsNext"
+
+export NIX_PATH="ssh-config-file=$(dirname $DIR)/ssh/config:nixpkgs=$HOME/.nix-defexpr/channels/immaeNixpkgs"
nixops "$@"