about summary refs log tree commit diff stats
path: root/home-manager/packages/scripts/small_functions/update.sh
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-04-15 14:39:17 +0200
committerSoispha <soispha@vhack.eu>2023-05-09 19:30:40 +0200
commitd59d2b8c8e487d97b44ecf8219433df06b336991 (patch)
tree612d502385b8568f82ab9fbe84dc9f332d69853c /home-manager/packages/scripts/small_functions/update.sh
parentFeat(flake): Add shellcheck to the development env (diff)
downloadnixos-config-d59d2b8c8e487d97b44ecf8219433df06b336991.zip
Fix(hm/pkgs/scr/update): Reset branch after update
Diffstat (limited to 'home-manager/packages/scripts/small_functions/update.sh')
-rwxr-xr-xhome-manager/packages/scripts/small_functions/update.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/home-manager/packages/scripts/small_functions/update.sh b/home-manager/packages/scripts/small_functions/update.sh
new file mode 100755
index 00000000..a8a838e8
--- /dev/null
+++ b/home-manager/packages/scripts/small_functions/update.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env dash
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. %SHELL_LIBRARY_PATH
+
+help() {
+    cat << EOF
+    --branch | -b  [branchname]     select a branch to update from.
+    --help   | -h                   output this help.
+EOF
+    exit "$1";
+}
+tmp=$(mktmp);
+git remote show origin | grep 'HEAD' | cut -d':' -f2 | sed -e 's/^ *//g' -e 's/ *$//g' > $tmp &
+BRANCH="";
+
+while [ "$#" -gt 0 ];do
+    case "$1" in
+        "--help" | "-h")
+            help 0;
+            ;;
+        "--branch" | "-b")
+            if [ -n "$2" ];then
+                BRANCH="$2";
+            else
+                error "$1 requires an argument";
+                help 1;
+            fi
+            shift 2;
+            ;;
+        *)
+            error "the option $1 does not exist!";
+            help 1;
+            ;;
+    esac
+done
+
+
+cd /etc/nixos || die "No /etc/nixos"
+git pull --rebase
+[ "$BRANCH" = "" ] || git switch "$BRANCH";
+nixos-rebuild switch
+git switch "$(cat $tmp)";