diff options
author | Soispha <soispha@vhack.eu> | 2023-04-15 14:39:17 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-05-09 19:30:40 +0200 |
commit | d59d2b8c8e487d97b44ecf8219433df06b336991 (patch) | |
tree | 612d502385b8568f82ab9fbe84dc9f332d69853c /home-manager/packages/scripts/small_functions/update.sh | |
parent | Feat(flake): Add shellcheck to the development env (diff) | |
download | nixos-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-x | home-manager/packages/scripts/small_functions/update.sh | 43 |
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)"; |