oscam-2.26.01-11942-802-wit.../git-start.sh
2026-02-17 10:29:58 +00:00

103 lines
3.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
echo "===== TWORZENIE NOWEJ GAŁĘZI ====="
# ────────────────────────────────────────────────
# Najpierw zbieramy wszystkie odpowiedzi od użytkownika
# ────────────────────────────────────────────────
echo ""
echo "Jakiego typu zmiana?"
echo " 1 = fix (poprawka błędu)"
echo " 2 = feat (nowa funkcjonalność)"
echo " 3 = refactor (poprawa kodu bez zmiany zachowania)"
echo " 4 = docs (dokumentacja)"
echo " 5 = inne (wpisz własną prefiksa)"
echo -n "Wybierz numer (Enter = fix): "
read -r choice
case "$choice" in
1|"") PREFIX="fix" ;;
2) PREFIX="feat" ;;
3) PREFIX="refactor" ;;
4) PREFIX="docs" ;;
5) echo -n "Wpisz własny prefix (np. chore, test, style): "
read -r PREFIX ;;
*) PREFIX="$choice" ;;
esac
echo -n "Krótki opis zmiany (bez spacji, myślniki zamiast spacji): "
read -r DESC
if [ -z "$DESC" ]; then
echo "❌ Opis nie może być pusty!"
exit 1
fi
# Czyszczenie opisu
DESC=$(echo "$DESC" | tr '[:upper:]' '[:lower:]' | tr -s ' ' '-' | tr -cd '[:alnum:]-')
PROPOSED_BRANCH="${PREFIX}-${DESC}"
echo ""
echo "Proponowana nazwa gałęzi: ${PROPOSED_BRANCH}"
echo -n "Zatwierdzasz? [T/n]: "
read -r confirm
if [[ "$confirm" =~ ^[Nn]$ ]]; then
echo -n "Wpisz własną nazwę gałęzi: "
read -r BRANCH
if [ -z "$BRANCH" ]; then
echo "❌ Anulowano."
exit 1
fi
else
BRANCH="${PROPOSED_BRANCH}"
fi
# ────────────────────────────────────────────────
# Teraz dopiero zaczynamy operacje git
# ────────────────────────────────────────────────
echo ""
echo "Przygotowuję main..."
# Zapisujemy ewentualne niezacommitowane zmiany
echo "→ Zapisuję bieżące niezacommitowane zmiany (stash)..."
git stash push -m "automatyczny stash przed git-start $(date '+%Y-%m-%d %H:%M')" || true
# Przełączamy się na main
git checkout main 2>/dev/null || { echo "❌ Nie udało się przełączyć na main"; exit 1; }
# Aktualizujemy main
echo "→ Pobieram najnowszy main..."
git pull origin main
if [ $? -ne 0 ]; then
echo "❌ Błąd podczas git pull. Sprawdź połączenie / uprawnienia."
# Przywracamy stash jeśli był
git stash pop || true
exit 1
fi
# Przywracamy ewentualne zmiany użytkownika na czystym mainie
echo "→ Przywracam Twoje zmiany (jeśli były schowane)..."
git stash pop || echo "Nie było schowanych zmian OK"
# Tworzymy nową gałąź
echo "→ Tworzę gałąź: $BRANCH"
git checkout -b "$BRANCH"
if [ $? -ne 0 ]; then
echo "❌ Błąd gałąź $BRANCH prawdopodobnie już istnieje."
git branch
# Przywracamy stan sprzed próby (opcjonalnie)
git checkout main
exit 1
fi
echo ""
echo "✅ Jesteś teraz na gałęzi: $BRANCH"
echo "Po skończeniu pracy uruchom: ./git-done.sh"