--- /dev/null
+setup:
+ ./scripts/setup
+
+ssh-eldiron:
+ ./scripts/nixops_wrap ssh eldiron
+
+info:
+ ./scripts/nixops_wrap list
+ ./scripts/nixops_wrap info
+
+debug:
+ ./scripts/nixops_wrap deploy --build-only --show-trace
+
+dry-run:
+ ./scripts/nixops_wrap deploy --dry-run
+
+build:
+ ./scripts/nixops_wrap deploy --build-only
+
+upload:
+ ./scripts/nixops_wrap deploy --copy-only
+
+deploy:
+ ./scripts/nixops_wrap deploy
+
+push:
+ ./scripts/push_deployment
+ ./scripts/push_environment
+
+pull:
+ ./scripts/pull_environment
+
+pull-deployment:
+ ./scripts/pull_deployment
+
+profile = $(shell ./scripts/nixops_wrap info | grep "^Nix profile: " | sed -e "s/^Nix profile: //")
+GEN ?= "+3"
+
+list-generations:
+ nix-env -p $(profile) --list-generations
+ ./scripts/nixops_wrap ssh eldiron -- nix-env -p /nix/var/nix/profiles/system --list-generations
+
+delete-generations:
+ nix-env -p $(profile) --delete-generations $(GEN)
+ ./scripts/nixops_wrap ssh eldiron -- nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)
+
+cleanup: delete-generations
+ nix-store --gc
+ ./scripts/nixops_wrap ssh eldiron -- nix-store --gc
+
+.PHONY: setup ssh-eldiron info debug dry-run build upload deploy push pull pull-deployment list-generations delete-generations cleanup
fi
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+nixops="$(nix-build --no-out-link -A nixops "$(dirname $(dirname $DIR))")/bin/nixops"
export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
-if nixops info -d $DeploymentUuid 2>/dev/null >/dev/null; then
+if $nixops info -d $DeploymentUuid 2>/dev/null >/dev/null; then
cat <<EOF
This will remove your current deployment file and recreate it!
Continue? [y/N]
EOF
read y
if [ "$y" = "y" -o "$y" = "Y" ]; then
- nixops delete --force -d $DeploymentUuid
+ $nixops delete --force -d $DeploymentUuid
else
echo "Aborting"
exit 1
deployment=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment)
-echo "$deployment" | nixops import
+echo "$deployment" | $nixops import
-nixops modify -d "$DeploymentUuid" "$(dirname $DIR)/eldiron.nix"
+$nixops modify -d "$DeploymentUuid" "$(dirname $DIR)/eldiron.nix"
fi
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+nixops="$(nix-build --no-out-link -A nixops "$(dirname $(dirname $DIR))")/bin/nixops"
export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
export NIXOPS_DEPLOYMENT="$DeploymentUuid"
-nixops export | pass insert -m $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment
+$nixops export | pass insert -m $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment
exit 1
fi
-if ! which nixops 2>/dev/null >/dev/null; then
- cat <<-EOF
- nixops is needed:
- > nix-env -i nixops
- If it fails, please check that $HOME/.nix-profile/bin is in your PATH.
- Continue? [y/N]
- EOF
- read y
- if [ "$y" = "y" -o "$y" = "Y" ]; then
- nix-env -i nixops
- if ! which nixops 2>/dev/null >/dev/null; then
- echo "Installation failed, please check that $HOME/.nix-profile/bin is in your path."
- exit 1
- fi
- else
- echo "Aborting"
- exit 1
- fi
-fi
-
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+nixops="$(nix-build --no-out-link -A nixops "$(dirname $(dirname $DIR))")/bin/nixops"
export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
export NIXOPS_DEPLOYMENT="$DeploymentUuid"
-if ! nixops info 2>/dev/null >/dev/null; then
+if ! $nixops info 2>/dev/null >/dev/null; then
cat <<-EOF
Importing deployment file into nixops:
Continue? [y/N]
read y
if [ "$y" = "y" -o "$y" = "Y" ]; then
deployment=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment)
- echo "$deployment" | nixops import
+ echo "$deployment" | $nixops import
- nixops modify "$(dirname $DIR)/eldiron.nix"
+ $nixops modify "$(dirname $DIR)/eldiron.nix"
else
echo "Aborting"
exit 1