mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-11 12:17:45 +02:00
55 lines
1.2 KiB
Bash
55 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# --- Args ---
|
|
if [ $# -ne 2 ]; then
|
|
echo -e "\033[1;31mError: exactly 2 arguments required\033[0m"
|
|
echo -e "\033[0;90mUsage: bash push.sh Name \"commit message\"\033[0m"
|
|
exit 1
|
|
fi
|
|
|
|
NAME="$1"
|
|
MESSAGE="$2"
|
|
|
|
# --- Helpers ---
|
|
banner() {
|
|
local msg="$1"
|
|
local len=${#msg}
|
|
local border=$(printf '═%.0s' $(seq 1 $((len + 4))))
|
|
echo ""
|
|
echo -e "\033[1;36m╔${border}╗\033[0m"
|
|
echo -e "\033[1;36m║ \033[1;33m${msg}\033[1;36m ║\033[0m"
|
|
echo -e "\033[1;36m╚${border}╝\033[0m"
|
|
echo ""
|
|
}
|
|
|
|
gate() {
|
|
local prompt="${1:?gate requires a prompt argument}"
|
|
while true; do
|
|
read -rp $'\033[1;35m► '"${prompt}"$' [Y/n] \033[0m' yn
|
|
case "${yn:-Y}" in
|
|
[Yy]*) return 0 ;;
|
|
[Nn]*) echo -e "\033[1;31m✗ Aborted.\033[0m"; exit 1 ;;
|
|
*) echo "Please answer y or n." ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
# --- Workflow ---
|
|
banner "git status"
|
|
git status
|
|
gate "Stage all changes?"
|
|
|
|
banner "git add ."
|
|
git add .
|
|
git status
|
|
gate "Commit these changes?"
|
|
|
|
banner "git commit -m \"[${NAME}]: ${MESSAGE}\""
|
|
git commit -m "[${NAME}]: ${MESSAGE}"
|
|
gate "Push to remote?"
|
|
|
|
banner "git push"
|
|
git push
|
|
|
|
banner "All changes pushed successfully ✓" |