nutools/pz

53 lines
1.5 KiB
Bash
Executable File

#!/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
version="${version%+*}"
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