gitploy: outillage de déploiement git (deploy + hotfix transactionnels)
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# gitploy — installe les sous-commandes « git deploy » / « git hotfix »
|
||||
# pour le dépôt qui utilise cet outil, sans toucher au PATH.
|
||||
#
|
||||
# À lancer une fois (après un clone / init de submodule) :
|
||||
# gitploy/setup (si monté en submodule sous gitploy/)
|
||||
# ./setup (si utilisé en dépôt autonome)
|
||||
#
|
||||
# git n'exécute jamais une config versionnée tout seul (sécurité) : cette
|
||||
# étape unique est donc nécessaire.
|
||||
set -euo pipefail
|
||||
|
||||
# Dossier réel de cet outil (résout aussi les symlinks éventuels).
|
||||
SCRIPTS_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
|
||||
# Dépôt à configurer : le superprojet si on est un submodule, sinon le dépôt courant.
|
||||
SUPER=$(git -C "$SCRIPTS_DIR" rev-parse --show-superproject-working-tree 2>/dev/null || true)
|
||||
if [ -n "$SUPER" ]; then
|
||||
TARGET="$SUPER"
|
||||
else
|
||||
TARGET=$(git -C "$SCRIPTS_DIR" rev-parse --show-toplevel)
|
||||
fi
|
||||
|
||||
# Chemin de l'outil relatif au dépôt cible (pour un alias portable).
|
||||
REL="${SCRIPTS_DIR#"$TARGET"/}"
|
||||
|
||||
git -C "$TARGET" config alias.deploy "!\"\$(git rev-parse --show-toplevel)/$REL/git-deploy\""
|
||||
git -C "$TARGET" config alias.hotfix "!\"\$(git rev-parse --show-toplevel)/$REL/git-hotfix\""
|
||||
|
||||
# Branche de dev par défaut si non définie.
|
||||
git -C "$TARGET" config deploy.source >/dev/null 2>&1 || git -C "$TARGET" config deploy.source master
|
||||
|
||||
echo "✓ Alias installés sur : $TARGET"
|
||||
echo " git deploy / git hotfix → $REL/"
|
||||
echo " deploy.source = $(git -C "$TARGET" config deploy.source)"
|
||||
echo " deploy.push = $(git -C "$TARGET" config --bool deploy.push 2>/dev/null || echo 'false (désactivé)')"
|
||||
echo
|
||||
echo "Complétion (optionnelle) — à ajouter à ~/.bashrc :"
|
||||
echo " source \"$SCRIPTS_DIR/deploy-completion.bash\""
|
||||
echo
|
||||
echo "Activer le push réel quand tu seras prêt : git -C \"$TARGET\" config deploy.push true"
|
||||
Reference in New Issue
Block a user