diff --git a/uproject b/uproject index 0f97ad7..3276c60 100755 --- a/uproject +++ b/uproject @@ -96,6 +96,11 @@ COMMANDS Sur un dépôt fraichement cloné, initialiser le dépôt avec 'annex init' s'il contient des fichiers annexés. Récupérer aussi ces fichiers avec 'annex get' + xconfig-export [dir] + Installer des hooks pour qu'un dépôt puisse être utilisé pour servir des + fichiers, par exemple avec un serveur web. Plus précisément, un hook + post-receive est créé avec la commande 'git annex merge', et un hook + post-update est créé avec la commande 'git update-server-info' printml [-t TYPE] Afficher le modeline pour un fichier du type spécifié @@ -153,6 +158,7 @@ CMD_ALIASES=( xs:xsync xw:xwhereis xwa:xwebapp + xce:xconfig-export gr:grep ) DEFAULT_CMD=status @@ -293,6 +299,49 @@ elif [ "$CMD" == crone ]; then git clone "$userhost:$path" "$destdir" || die git_annex_initial "$destdir" || die +elif [ "$CMD" == xconfig-export ]; then + unset GIT_DIR; unset GIT_WORK_TREE + dir="${1:-.}" + [ -d "$dir" ] || die "$dir: répertoire introuvable" + setx dir=abspath "$dir" + setx repodir=ppath "$dir" + cd "$dir" + + git rev-parse 2>/dev/null || die "$repodir: n'est pas un dépôt git" + [ -n "$(git config --get annex.uuid)" ] || die "$repodir: n'est pas un dépôt git-annex" + cd "$(__vcs_find_root "$dir")" + [ -d .git ] || die "$repodir: est un dépôt nu" + + prhook=.git/hooks/post-receive + prscript='if [ -n "$GIT_DIR" ]; then cd "$GIT_DIR"; cd ..; unset GIT_DIR; fi +git annex merge' + puhook=.git/hooks/post-update + puscript='git update-server-info' + if [ -f "$prhook" ]; then + ewarn "Le fichier $prhook existe déjà dans $repodir +Vérifiez qu'il contient les commandes suivantes: +--------8<-------- +$prscript +--------8<--------" + else + estep "post-receive" + echo "#!/bin/bash +$prscript" >"$prhook" + chmod +x "$prhook" + fi + if [ -f "$puhook" ]; then + ewarn "Le fichier $puhook existe déjà dans $repodir +Vérifiez qu'il contient les commandes suivantes: +--------8<-------- +$puscript +--------8<--------" + else + estep "post-update" + echo "#!/bin/bash +$puscript" >"$puhook" + chmod +x "$puhook" + fi + elif array_contains PY_CMDS "$CMD"; then exec "$scriptdir/lib/pywrapper" uproject.py "$CMD" "$@"