diff --git a/todo/prel b/todo/prel index 2f27f48..4a864ff 100755 --- a/todo/prel +++ b/todo/prel @@ -134,47 +134,53 @@ if [ "$action" == update ]; then setx version=pver -g "" if [ "$incversion" == auto ]; then - # s'il existe déjà une branche de release, prendre celle-là - setx -a branches=list_release_branches - - if [ ${#branches[*]} -eq 0 ]; then - # en l'absence de branche de release, proposer d'en créer une - incversion=menu - elif [ ${#branches[*]} -eq 1 ]; then - # s'il n'y en a qu'une, la prendre - release="${branches[0]}" + if [ ${#pver_opts[*]} -gt 0 ]; then + # des options ont été spécifiées, les honorer + setx specv=pver -s "$version" "${pver_opts[@]}" + release="release-$specv" else - # sinon, donner le choix dans un menu - array_add branches master - default_branch="$branch" - array_contains branches "$default_branch" || default_branch="${branches[0]}" - simple_menu release branches -d "$default_branch" \ - -t "Basculer vers une release branch" \ - -m "Veuillez choisir la branche vers laquelle basculer" + # sinon, prendre une décision en fonction des branches de release + # qui existent déjà + setx -a branches=list_release_branches + if [ ${#branches[*]} -eq 0 ]; then + # en l'absence de branche de release, proposer d'en créer une + incversion=menu + elif [ ${#branches[*]} -eq 1 ]; then + # s'il n'y en a qu'une, la prendre + release="${branches[0]}" + else + # sinon, donner le choix dans un menu + array_add branches master + default_branch="$branch" + array_contains branches "$default_branch" || default_branch="${branches[0]}" + simple_menu release branches -d "$default_branch" \ + -t "Basculer vers une release branch" \ + -m "Veuillez choisir la branche vers laquelle basculer" + fi fi fi case "$incversion" in menu) - setx major=pver -s "$version" -ux "${pver_opts[@]}" - setx minor=pver -s "$version" -uz "${pver_opts[@]}" - setx patchlevel=pver -g "$version" -up "${pver_opts[@]}" - release="release-$minor" - branches=("release-$major" "release-$minor" "release-$patchlevel" master) + setx majorv=pver -s "$version" -ux "${pver_opts[@]}" + setx minorv=pver -s "$version" -uz "${pver_opts[@]}" + setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}" + release="release-$minorv" + branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master) simple_menu release branches \ -t "Basculer vers une nouvelle release branch" \ -m "Veuillez choisir la branche à créer" ;; major) - setx major=pver -s "$version" -ux "${pver_opts[@]}" - release="release-$major" + setx majorv=pver -s "$version" -ux "${pver_opts[@]}" + release="release-$majorv" ;; minor) - setx minor=pver -s "$version" -uz "${pver_opts[@]}" - release="release-$minor" + setx minorv=pver -s "$version" -uz "${pver_opts[@]}" + release="release-$minorv" ;; patchlevel) - setx patchlevel=pver -g "$version" -up "${pver_opts[@]}" - release="release-$patchlevel" + setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}" + release="release-$patchlevelv" ;; esac