summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2015-06-24 20:00:52 +0200
committertv <tv@krebsco.de>2015-06-24 20:00:52 +0200
commit71c15ed7b6a3a6f6d970d1fbadb52625d2481737 (patch)
treeef5cd237fc110842e64cc3ecf889093d1f63b365
parente07b9876c880352d6ac186c9e04ec048a077d69a (diff)
infest-cac-CentOS-7-64bit: fetchgit
-rwxr-xr-xinfest-cac-CentOS-7-64bit.sh13
-rwxr-xr-xnewbin/fetchgit25
-rwxr-xr-xnewbin/nixos-query8
3 files changed, 46 insertions, 0 deletions
diff --git a/infest-cac-CentOS-7-64bit.sh b/infest-cac-CentOS-7-64bit.sh
index 32090ae..0f2efae 100755
--- a/infest-cac-CentOS-7-64bit.sh
+++ b/infest-cac-CentOS-7-64bit.sh
@@ -4,6 +4,19 @@ set -xeuf
serverspec=$1
systemname=$2
+(
+ # Notice NIX_PATH used from host
+ # Notice secrets required to evaluate configuration
+ NIX_PATH=$NIX_PATH:nixos-config=$PWD/modules/$systemname
+ NIX_PATH=$NIX_PATH:secrets=$PWD/secrets/$systemname/nix
+ export NIX_PATH
+
+ rev=$(newbin/nixos-query nixpkgs.rev)
+ url=$(newbin/nixos-query nixpkgs.url)
+
+ newbin/fetchgit "$rev" "$url" tmp/nixpkgs/$systemname
+)
+
./cac poll 10s 2>/dev/null &
pollpid=$!
trap "kill $pollpid; trap - EXIT" EXIT
diff --git a/newbin/fetchgit b/newbin/fetchgit
new file mode 100755
index 0000000..b9fe908
--- /dev/null
+++ b/newbin/fetchgit
@@ -0,0 +1,25 @@
+#! /bin/sh
+# usage: fetchgit REVISION URL WORKTREE
+set -euf
+
+git_rev=$1
+git_url=$2
+worktree=$3
+
+if [ ! -d "$worktree" ]; then
+ mkdir -p "$worktree"
+fi
+
+cd "$worktree"
+
+git init -q
+
+if ! current_url=$(git config remote.src.url); then
+ git remote add src "$git_url"
+elif [ "$current_url" != "$git_url" ]; then
+ git remote set-url src "$git_url"
+fi
+
+git fetch src
+
+git checkout "$git_rev"
diff --git a/newbin/nixos-query b/newbin/nixos-query
new file mode 100755
index 0000000..57761b5
--- /dev/null
+++ b/newbin/nixos-query
@@ -0,0 +1,8 @@
+#! /bin/sh
+set -euf
+nix-instantiate \
+ -A config."$1" \
+ --eval \
+ --json \
+ '<nixos>' \
+ | jq -r .