From 1127272330e8aa0d38c60fb3e6496e7345080821 Mon Sep 17 00:00:00 2001 From: kj Date: Mon, 5 Oct 2026 16:29:16 -0300 Subject: [PATCH] refactor(release): unify ask via global ANSWER variable --- scripts/release | 17 ++++++++--------- tests/group6_release_test.php | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/scripts/release b/scripts/release index 8b493db..2951235 100755 --- a/scripts/release +++ b/scripts/release @@ -40,11 +40,11 @@ bump() { echo implode(".", $p);' "$1" "$2" } +ANSWER="" + ask() { - local prompt="$1" reply - printf '%s' "$prompt" >&2 - read -r reply || die "entrada agotada; pasa los argumentos o correlo en un TTY" - printf '%s' "$reply" + printf '%s' "$1" >&2 + read -r ANSWER || die "entrada agotada; pasa los argumentos o correlo en un TTY" } ASSUME_YES=0 @@ -58,9 +58,8 @@ done confirm() { [ "$ASSUME_YES" = "1" ] && return 0 - local r - r="$(ask "$1 [Y/n] ")" - case "${r,,}" in ""|y|yes) return 0 ;; *) return 1 ;; esac + ask "$1 [Y/n] " + case "${ANSWER,,}" in ""|y|yes) return 0 ;; *) return 1 ;; esac } # --- eleccion de paquete ----------------------------------------------------- @@ -74,7 +73,7 @@ else printf ' %2d) %-10s v%s\n' "$((i + 1))" "${PKGS[i]}" "$(version_of "${PKGS[i]}")" done while :; do - R="$(ask 'Elegir paquete (numero o nombre): ')" + ask 'Elegir paquete (numero o nombre): '; R="$ANSWER" if [[ "$R" =~ ^[0-9]+$ ]] && [ "$R" -ge 1 ] && [ "$R" -le "${#PKGS[@]}" ]; then PACKAGE="${PKGS[R - 1]}" break @@ -93,7 +92,7 @@ if [ "${#POSITIONAL[@]}" -ge 2 ]; then else while :; do printf 'Incremento para %s (actual v%s):\n 1) patch\n 2) minor\n 3) major\n' "$PACKAGE" "$(version_of "$PACKAGE")" >&2 - R="$(ask 'Elegir (numero o nombre): ')" + ask 'Elegir (numero o nombre): '; R="$ANSWER" case "$R" in 1|patch) TYPE=patch; break ;; 2|minor) TYPE=minor; break ;; diff --git a/tests/group6_release_test.php b/tests/group6_release_test.php index 37c1b13..d79a8e8 100644 --- a/tests/group6_release_test.php +++ b/tests/group6_release_test.php @@ -16,7 +16,7 @@ Harness::it('release bumpea, commitea, tagea y publica', function () { seed_package($repo, '1.2.3'); git_commit($repo, 'init'); - exec('cd ' . escapeshellarg($repo) . ' && bash scripts/release http minor', $out, $code); + exec('cd ' . escapeshellarg($repo) . ' && bash scripts/release http minor --yes', $out, $code); eq(0, $code, 'release debe terminar bien: ' . implode("\n", $out)); $pushed = exec('git -C ' . escapeshellarg($repo) . ' tag -l "http-v1.3.0"');