nixos76: shellcheck quick-switch

This commit is contained in:
alex 2024-08-24 11:36:28 -04:00
parent a29572f876
commit 1ed635be48
1 changed files with 25 additions and 23 deletions

View File

@ -1,30 +1,34 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
commitchanges="false" commitchanges="false"
while getopts 'c' OPTION; do while getopts 'c' OPTION; do
case "$OPTION" in case "$OPTION" in
c) commitchanges="true" ;; c) commitchanges="true" ;;
*) exit 1 ;;
esac esac
done done
# Stolen from https://stackoverflow.com/a/29436423 # Stolen from https://stackoverflow.com/a/29436423
function yes_or_no { function yes_or_no {
while true; do while true; do
read -p "$* [y/n]: " yn read -r -p "$* [y/n]: " yn
case $yn in case $yn in
[Yy]*) return 0 ;; [Yy]*) return 0 ;;
[Nn]*) echo "Aborted" ; return 1 ;; [Nn]*)
esac echo "Aborted"
done return 1
;;
esac
done
} }
function reset_bspwm() { function reset_bspwm() {
pkill -USR1 -x sxhkd pkill -USR1 -x sxhkd
pkill -x picom pkill -x picom
pkill polybar pkill polybar
sxhkd & sxhkd &
bspc wm -r bspc wm -r
} }
@ -38,25 +42,23 @@ function apply() {
} }
function commit_and_apply() { function commit_and_apply() {
read -p "Git working directory is unclean. Commit message: " msg read -r -p "Git working directory is unclean. Commit message: " msg
git add . git add .
git commit -m "$(hostname): $msg" git commit -m "$(hostname): $msg"
apply apply
} }
if [ -z "$(git status --porcelain)" ] if [ -z "$(git status --porcelain)" ]; then
then
apply apply
else else
if [ "$commitchanges" == "false" ] if [ "$commitchanges" == "false" ]; then
then echo "Using local flake..."
echo "Using local flake..." sudo nixos-rebuild switch --show-trace --flake .
sudo nixos-rebuild switch --show-trace --flake . reset_bspwm
reset_bspwm else
else echo "Committing flake and pushing..."
echo "Committing flake and pushing..." commit_and_apply
commit_and_apply
fi fi
# shellcheck disable=SC2028
echo "\nOperation completed." echo "\nOperation completed."
fi fi