summaryrefslogtreecommitdiffstats
path: root/bin/nixos-fetch-git
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2015-05-21 23:52:06 +0200
committertv <tv@krebsco.de>2015-05-21 23:52:06 +0200
commitbb46e52bb239f9b0962ff441d5a8f037b1ef1eaf (patch)
tree826235e1b776665ab32ee787bb96cd3b6f519d95 /bin/nixos-fetch-git
parent42d10d883a720a63753568a6fa2d12790e9310c6 (diff)
deploy: merge next
Diffstat (limited to 'bin/nixos-fetch-git')
-rwxr-xr-xbin/nixos-fetch-git32
1 files changed, 32 insertions, 0 deletions
diff --git a/bin/nixos-fetch-git b/bin/nixos-fetch-git
new file mode 100755
index 0000000..7002208
--- /dev/null
+++ b/bin/nixos-fetch-git
@@ -0,0 +1,32 @@
+#! /bin/sh
+#
+# nixos-fetch-git : nixos-config -> ...
+#
+set -euf
+
+host=$1
+
+target=root@$host
+
+git_rev=$(nixos-query "$host" nixpkgs.rev)
+git_url=$(nixos-query "$host" nixpkgs.url)
+
+worktree=$nixpkgs_root/$host
+
+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"