From c79bb68270abd6e5a59e36bf09d64b2eb0d23fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Thu, 25 Apr 2019 19:41:41 +0200 Subject: Add makefile and remove nixops dependency --- nixops/Makefile | 51 ++++++++++++++++++++++++++++++++++++++++++ nixops/scripts/pull_deployment | 9 ++++---- nixops/scripts/push_deployment | 3 ++- nixops/scripts/setup | 27 ++++------------------ 4 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 nixops/Makefile diff --git a/nixops/Makefile b/nixops/Makefile new file mode 100644 index 0000000..1d76a9c --- /dev/null +++ b/nixops/Makefile @@ -0,0 +1,51 @@ +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 diff --git a/nixops/scripts/pull_deployment b/nixops/scripts/pull_deployment index 8ee9b75..d238434 100755 --- a/nixops/scripts/pull_deployment +++ b/nixops/scripts/pull_deployment @@ -8,16 +8,17 @@ if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then 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 </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 diff --git a/nixops/scripts/setup b/nixops/scripts/setup index 4a76d35..cfa8d64 100755 --- a/nixops/scripts/setup +++ b/nixops/scripts/setup @@ -134,31 +134,12 @@ if nix show-config --json | jq -e '.sandbox.value == "true"' >/dev/null; then 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] @@ -166,9 +147,9 @@ if ! nixops info 2>/dev/null >/dev/null; then 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 -- cgit v1.2.3