aboutsummaryrefslogtreecommitdiffstats
path: root/home-manager/packages/scripts/small_functions/update-sys
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-05-02 19:11:30 +0200
committerSoispha <soispha@vhack.eu>2023-05-09 19:33:04 +0200
commitcc3664bed6bccbb2d7e7e4aa117fa6de654de0c7 (patch)
tree3b691c451a5f793d9100ad374dd54fd5989617ad /home-manager/packages/scripts/small_functions/update-sys
parentFeat(hm/pkgs): Add flake_update (diff)
downloadnixos-config-cc3664bed6bccbb2d7e7e4aa117fa6de654de0c7.zip
Fix(hm/pkgs): Rename update to update-sys to avoid naming conflict
Diffstat (limited to 'home-manager/packages/scripts/small_functions/update-sys')
-rwxr-xr-xhome-manager/packages/scripts/small_functions/update-sys62
1 files changed, 62 insertions, 0 deletions
diff --git a/home-manager/packages/scripts/small_functions/update-sys b/home-manager/packages/scripts/small_functions/update-sys
new file mode 100755
index 00000000..cbe994c6
--- /dev/null
+++ b/home-manager/packages/scripts/small_functions/update-sys
@@ -0,0 +1,62 @@
+#!/usr/bin/env dash
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. %SHELL_LIBRARY_PATH
+
+help() {
+ cat << EOF
+This is a Nixos flake update manager.
+
+Usage:
+ $name [--branch <branchname>] [--help]
+
+Options:
+ --branch | -b [branchname] select a branch to update from.
+ --help | -h output this help.
+EOF
+ exit "$1";
+}
+name="update";
+tmp=$(mktmp);
+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";
+msg "Starting system update...";
+git remote update origin --prune > /dev/null 2>&1;
+if ! [ "$BRANCH" = "" ];then
+ git switch "$BRANCH" > /dev/null 2>&1 && msg2 "Switched to branch '$BRANCH'";
+fi
+msg2 "Updating git repository...";
+git pull --rebase;
+
+git remote show origin | grep 'HEAD' | cut -d':' -f2 | sed -e 's/^ *//g' -e 's/ *$//g' > $tmp &
+
+msg2 "Updating system...";
+nixos-rebuild switch;
+
+git switch "$(cat $tmp)" > /dev/null 2>&1 && msg2 "Switched to branch '$(cat $tmp)'";
+msg "Finished Update!";
+
+# vim: ft=sh