scripts: résolution symlink-safe + README install user-level

This commit is contained in:
2026-09-07 12:16:59 +02:00
parent bc1b09b779
commit 44dcd0192f
3 changed files with 25 additions and 13 deletions
+23 -11
View File
@@ -21,25 +21,37 @@ main**, puis rapatrie automatiquement le correctif dans le dev.
## Installation ## Installation
### En submodule (recommandé) ### Au niveau utilisateur (recommandé)
gitploy est un *outil* : on l'installe une fois, tous les dépôts en profitent.
```bash
# 1. cloner une fois dans un emplacement stable
git clone gitea-figureslibres.io:bachir/gitploy.git ~/.local/share/gitploy
# 2. exposer les sous-commandes (via un dossier du PATH, ex. ~/.local/bin)
ln -sf ~/.local/share/gitploy/git-deploy ~/.local/bin/git-deploy
ln -sf ~/.local/share/gitploy/git-hotfix ~/.local/bin/git-hotfix
# 3. complétion (une fois)
echo 'source "$HOME/.local/share/gitploy/deploy-completion.bash"' >> ~/.bash_completion
```
`git deploy` / `git hotfix` sont alors disponibles dans **tous** tes dépôts,
sans alias ni `setup`. Mise à jour globale : `git -C ~/.local/share/gitploy pull`.
### En submodule (pour figer une version par projet)
```bash ```bash
# dans le dépôt qui doit déployer # dans le dépôt qui doit déployer
git submodule add https://figureslibres.io/gitea/bachir/gitploy.git gitploy git submodule add https://figureslibres.io/gitea/bachir/gitploy.git gitploy
git submodule update --init git submodule update --init
gitploy/setup gitploy/setup # installe des alias git locaux (sans PATH)
```
### En dépôt autonome
```bash
git clone gitea-figureslibres.io:bachir/gitploy.git
cd gitploy && ./setup # configure le dépôt parent courant
``` ```
`setup` installe des **alias git locaux** (`git deploy`, `git hotfix`) pointant `setup` installe des **alias git locaux** (`git deploy`, `git hotfix`) pointant
vers les scripts**aucune modification du `PATH`**. git n'exécutant jamais une vers les scripts. git n'exécutant jamais une config versionnée tout seul (par
config versionnée tout seul (par sécurité), cette étape unique est nécessaire. sécurité), cette étape est nécessaire à chaque clone — c'est le prix du submodule.
## Configuration ## Configuration
+1 -1
View File
@@ -13,7 +13,7 @@
# git config deploy.push true|false (défaut : false — push désactivé) # git config deploy.push true|false (défaut : false — push désactivé)
set -euo pipefail set -euo pipefail
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) DIR=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)
# shellcheck source=_deploy_lib.sh # shellcheck source=_deploy_lib.sh
. "$DIR/_deploy_lib.sh" . "$DIR/_deploy_lib.sh"
+1 -1
View File
@@ -18,7 +18,7 @@
# git config deploy.push true|false (défaut : false — push désactivé) # git config deploy.push true|false (défaut : false — push désactivé)
set -euo pipefail set -euo pipefail
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) DIR=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)
# shellcheck source=_deploy_lib.sh # shellcheck source=_deploy_lib.sh
. "$DIR/_deploy_lib.sh" . "$DIR/_deploy_lib.sh"