-F permet de lire le contenu d'un fichier de version sans le mettre à jour

This commit is contained in:
Jephté Clain 2015-03-05 10:12:00 +04:00
parent 67d918b1b9
commit 1a595da1bc
1 changed files with 24 additions and 11 deletions

View File

@ -14,7 +14,10 @@ OPTIONS
Gérer le numéro de version se trouvant dans le fichier spécifié. Le Gérer le numéro de version se trouvant dans le fichier spécifié. Le
fichier est créé si nécessaire. C'est l'option par défaut si un fichier fichier est créé si nécessaire. C'est l'option par défaut si un fichier
nommé VERSION.txt se trouve dans le répertoire courant. nommé VERSION.txt se trouve dans le répertoire courant.
-g, --git [branch:]VERSIONFILE -F, --file-string VERSIONFILE
Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
vaut par défaut VERSION.txt)
-g, --git-string [branch:]VERSIONFILE
Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut
master) du dépôt git situé dans le répertoire courant. master) du dépôt git situé dans le répertoire courant.
@ -80,6 +83,8 @@ OPTIONS
gestionnaire de version. Note: pour le moment, seul git est supporté." gestionnaire de version. Note: pour le moment, seul git est supporté."
} }
DEFAULT_FILE=VERSION.txt
action=auto action=auto
source=auto source=auto
file= file=
@ -100,8 +105,9 @@ vcsmetadata=
parse_opts "${PRETTYOPTS[@]}" \ parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
-f:,--file: '$set@ file; source=file' \ -f:,--file: '$set@ file; source=file' \
-g:,--git: '$set@ git; source=git' \ -F:,--file-string: '$set@ file; source=file-string' \
-s:,--string: '$set@ version; source=' \ -g:,--git-string: '$set@ git; source=git-string' \
-s:,--string: '$set@ version; source=string' \
--show action=show \ --show action=show \
--check action=check \ --check action=check \
--convert convert=1 \ --convert convert=1 \
@ -130,7 +136,7 @@ parse_opts "${PRETTYOPTS[@]}" \
# Calculer la source # Calculer la source
if [ "$source" == auto ]; then if [ "$source" == auto ]; then
source=file source=file
for i in VERSION.txt version.txt; do for i in "$DEFAULT_FILE" version.txt; do
if [ -f "$i" ]; then if [ -f "$i" ]; then
file="$i" file="$i"
break break
@ -139,27 +145,35 @@ if [ "$source" == auto ]; then
elif [ "$source" == file ]; then elif [ "$source" == file ]; then
[ "$action" == auto ] && action=update [ "$action" == auto ] && action=update
fi fi
[ "$source" == file -a -z "$file" ] && file=VERSION.txt [ "$source" == file -a -z "$file" ] && file="$DEFAULT_FILE"
[ "$action" == auto ] && action=show [ "$action" == auto ] && action=show
# Lire la version # Lire la version
if [ "$source" == file ]; then if [ "$source" == file ]; then
[ -f "$file" ] && version="$(<"$file")" [ -f "$file" ] && version="$(<"$file")"
[ -n "$version" ] || version=0.0.0 elif [ "$source" == file-string ]; then
elif [ "$source" == git ]; then if [ -z "$file" ]; then
file="$DEFAULT_FILE"
elif [ -d "$file" ]; then
file="$file/$DEFAULT_FILE"
fi
[ -f "$file" ] && version="$(<"$file")"
file=
elif [ "$source" == git-string ]; then
splitfsep2 "$git" : branch name splitfsep2 "$git" : branch name
[ -n "$branch" ] || branch=master [ -n "$branch" ] || branch=master
[ -n "$name" ] || name=VERSION.txt [ -n "$name" ] || name="$DEFAULT_FILE"
if git rev-parse --verify --quiet "$branch:$name" >/dev/null; then if git rev-parse --verify --quiet "$branch:$name" >/dev/null; then
version="$(git cat-file blob "$branch:$name" 2>/dev/null)" version="$(git cat-file blob "$branch:$name" 2>/dev/null)"
fi fi
[ -n "$version" ] || version=0.0.0
fi fi
[ -n "$version" ] || version=0.0.0
# Conversion éventuelle du numéro de version # Conversion éventuelle du numéro de version
psemver_parse "$version" psemver_parse "$version"
[ -n "$valid" ] && convert=
if [ "$convert" == auto ]; then if [ "$convert" == auto ]; then
[ -z "$valid" ] && convert=1 || convert= [ -z "$valid" ] && convert=1
fi fi
if [ -n "$convert" ]; then if [ -n "$convert" ]; then
mversion="$(awkrun version="$version" ' mversion="$(awkrun version="$version" '
@ -201,7 +215,6 @@ BEGIN {
fi fi
# Actions # Actions
if [ "$action" == show ]; then if [ "$action" == show ]; then
if isatty; then if isatty; then
estepi "La version actuelle est $version" estepi "La version actuelle est $version"