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