#!/usr/bin/env dash # shellcheck disable=SC2086 # shellcheck source=/dev/null . %SHELL_LIBRARY_PATH help() { cat << EOF This is an Nixos flake update manager. Usage: "$name" [--branch ] [--help] Options: --branch | -b [branchname] select a branch to update from. --help | -h output this help. EOF exit "$1"; } name="$0"; [ "$name" = "" ] && name=update; 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)"; # vim: ft=sh