#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 source "$(dirname -- "$0")/lib/ulib/auto" || exit 1 urequire 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 branch=git rev-parse --short HEAD 2>/dev/null setx version=pver --show --allow-empty [ -n "$version" ] && setx version=pver --show --string "$version" --add-metadata "$branch" [ -n "$version" ] || version="+$branch" if check_sysinfos -d debian -v squeeze-; then # git archive sous debian squeeze a un bug: il génère un fichier tar au lieu # d'un fichier tar compressé. Nous ferons donc la compression nous même. dest="$destdir/$name${version:+-$version}.tar" gzip=1 else dest="$destdir/$name${version:+-$version}.tar.gz" gzip= fi estep "Création de $(ppath "$dest")" git archive -o "$dest" --prefix="$name${version:+-$version}/" HEAD || die [ -n "$gzip" ] || exit 0 estep "Compression de l'archive" gzip -f "$dest"