about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xhome-manager/packages/scripts/small_functions/update37
1 files changed, 34 insertions, 3 deletions
diff --git a/home-manager/packages/scripts/small_functions/update b/home-manager/packages/scripts/small_functions/update
index 858dae7c..7b7b2e01 100755
--- a/home-manager/packages/scripts/small_functions/update
+++ b/home-manager/packages/scripts/small_functions/update
@@ -3,8 +3,39 @@
 # shellcheck source=/dev/null
 . %SHELL_LIBRARY_PATH
 
-cd /etc/nixos
-git pull --rebase
-nixos-rebuild switch
+help() {
+    cat << EOF
+    --branch | -b  [branchname]     select a branch to update from.
+    --help   | -h                   output this help.
+EOF
+    exit "$1";
+}
+
+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"
+[ "$BRANCH" = "" ] || git switch "$BRANCH";
+git pull --rebase
+nixos-rebuild switch