diff --git a/pz b/pz new file mode 100755 index 0000000..cfaa9e6 --- /dev/null +++ b/pz @@ -0,0 +1,51 @@ +#!/bin/bash +# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 +source "$(dirname "$0")/lib/ulib/ulib" || exit 1 +urequire DEFAULTS vcs ptools + +function display_help() { + uecho "$scriptname: faire une archive du projet + +USAGE + $scriptname + +OPTIONS + -C, --projdir PROJDIR + Spécifier le répertoire de base du projet qui est dans git. Par défaut, + on travaille dans le répertoire courant et on laisse git trouver le + répertoire de base du projet. Avec cette option, le répertoire courant + est modifié avant de lancer les commandes git. + -d, --destdir DESTDIR + Spécifier le répertoire dans lequel générer l'archive. Par défaut, + prendre le répertoire parent du répertoire de base du dépôt." +} + +projdir= +destdir= +parse_opts "${PRETTYOPTS[@]}" \ + --help '$exit_with display_help' \ + -C:,--projdir: projdir= \ + -d:,--destdir: destdir= \ + @ args -- "$@" && set -- "${args[@]}" || die "$args" + +if [ -n "$projdir" ]; then + cd "$projdir" || die + git_ensure_gitvcs +else + git_ensure_gitvcs + setx projdir=git rev-parse --show-toplevel + cd "$projdir" || die +fi +setx projdir=pwd + +if [ -z "$destdir" ]; then + setx destdir=dirname -- "$projdir" +fi + +setx name=basename -- "$projdir" +setx version=pver --show --allow-empty +setx branch=git_get_branch +dest="$destdir/$name${version:+-$version}+$branch.tgz" + +estep "Création de $(ppath "$dest")" +git archive -o "$dest" --prefix="$name${version:+-$version}/" HEAD diff --git a/uproject b/uproject index 8c2b530..6b22edf 100755 --- a/uproject +++ b/uproject @@ -66,6 +66,9 @@ COMMANDS release, ou de correction de bugs. Lancer chaque commande avec --help pour les détails. Nécessite git. + archive + Créer une archive du projet courant. Nécessite git. + annex [args] Lancer git annex avec les arguments spécifiés. xadd @@ -106,12 +109,12 @@ SCRIPT_ALIASES=( pv:vcs pa:add prm:remove pcp:copy pmv:move pmd:mkdir pci:commit pu:update pp:push pdiff:diff + pclone:clone + pcrone:crone pxx:annex pxa:xadd pxu:xunlock pxc:xcopy pxd:xdrop pxm:xmove pxg:xget pxs:xsync pxw:xwhereis pxinitial:xinitial - pclone:clone - pcrone:crone pnew:new pgr:grep paddml:addml @@ -130,6 +133,7 @@ CMD_ALIASES=( p:push version:pver ver:pver develop:pdev dev:pdev release:prel rel:prel hotfix:pfix fix:pfix + archive:pz arch:pz xx:annex xa:xadd xu:xunlock @@ -144,7 +148,7 @@ CMD_ALIASES=( DEFAULT_CMD=status PY_CMDS=(new) VCS_CMDS=(getvcs getroot getrepos geturl vcs add remove copy move mkdir commit status update push diff tag) -SH_CMDS=(pver pdev prel pfix) +SH_CMDS=(pver pdev prel pfix pz) GITANNEX_CMDS=(annex xadd xunlock xcopy xdrop xmove xget xsync xwhereis xinitial) ML_CMDS=(printml addml)