ops: fix interactive prompts (printf to stderr, no subshell)
printf шёл в stdout внутри $(...), поэтому prompt не выводился и read висел. Теперь prompt идёт в stderr напрямую. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,14 +16,14 @@ command -v docker >/dev/null 2>&1 || { echo "error: docker not found in PATH" >&
|
|||||||
DEFAULT_TAG=$(git -C "${ROOT_DIR}" rev-parse --short HEAD 2>/dev/null || echo dev)
|
DEFAULT_TAG=$(git -C "${ROOT_DIR}" rev-parse --short HEAD 2>/dev/null || echo dev)
|
||||||
|
|
||||||
ask() {
|
ask() {
|
||||||
prompt="$1"; default="$2"
|
# $1 = variable name, $2 = prompt, $3 = default
|
||||||
if [ -n "$default" ]; then
|
if [ -n "$3" ]; then
|
||||||
printf "%s [%s]: " "$prompt" "$default"
|
printf "%s [%s]: " "$2" "$3" >&2
|
||||||
else
|
else
|
||||||
printf "%s: " "$prompt"
|
printf "%s: " "$2" >&2
|
||||||
fi
|
fi
|
||||||
read -r value
|
read -r _val
|
||||||
echo "${value:-$default}"
|
eval "$1=\"\${_val:-$3}\""
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# -ge 3 ]; then
|
if [ $# -ge 3 ]; then
|
||||||
@@ -32,12 +32,12 @@ if [ $# -ge 3 ]; then
|
|||||||
OWNER="$3"
|
OWNER="$3"
|
||||||
elif [ $# -ge 1 ]; then
|
elif [ $# -ge 1 ]; then
|
||||||
IMAGE_TAG="$1"
|
IMAGE_TAG="$1"
|
||||||
REGISTRY=$(ask "Registry" "")
|
ask REGISTRY "Registry" ""
|
||||||
OWNER=$(ask "Owner" "")
|
ask OWNER "Owner" ""
|
||||||
else
|
else
|
||||||
IMAGE_TAG=$(ask "Tag" "${DEFAULT_TAG}")
|
ask IMAGE_TAG "Tag" "${DEFAULT_TAG}"
|
||||||
REGISTRY=$(ask "Registry" "")
|
ask REGISTRY "Registry" ""
|
||||||
OWNER=$(ask "Owner" "")
|
ask OWNER "Owner" ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IMAGE_NAME="${IMAGE_NAME:-jukebox-maker}"
|
IMAGE_NAME="${IMAGE_NAME:-jukebox-maker}"
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ docker buildx version >/dev/null 2>&1 || die "docker buildx not available"
|
|||||||
DEFAULT_TAG=$(git -C "${ROOT_DIR}" rev-parse --short HEAD 2>/dev/null || echo dev)
|
DEFAULT_TAG=$(git -C "${ROOT_DIR}" rev-parse --short HEAD 2>/dev/null || echo dev)
|
||||||
|
|
||||||
ask() {
|
ask() {
|
||||||
prompt="$1"; default="$2"
|
# $1 = variable name, $2 = prompt, $3 = default
|
||||||
if [ -n "$default" ]; then
|
if [ -n "$3" ]; then
|
||||||
printf "%s [%s]: " "$prompt" "$default"
|
printf "%s [%s]: " "$2" "$3" >&2
|
||||||
else
|
else
|
||||||
printf "%s: " "$prompt"
|
printf "%s: " "$2" >&2
|
||||||
fi
|
fi
|
||||||
read -r value
|
read -r _val
|
||||||
echo "${value:-$default}"
|
eval "$1=\"\${_val:-$3}\""
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# -ge 3 ]; then
|
if [ $# -ge 3 ]; then
|
||||||
@@ -38,12 +38,12 @@ if [ $# -ge 3 ]; then
|
|||||||
OWNER="$3"
|
OWNER="$3"
|
||||||
elif [ $# -ge 1 ]; then
|
elif [ $# -ge 1 ]; then
|
||||||
IMAGE_TAG="$1"
|
IMAGE_TAG="$1"
|
||||||
REGISTRY=$(ask "Registry" "")
|
ask REGISTRY "Registry" ""
|
||||||
OWNER=$(ask "Owner" "")
|
ask OWNER "Owner" ""
|
||||||
else
|
else
|
||||||
IMAGE_TAG=$(ask "Tag" "${DEFAULT_TAG}")
|
ask IMAGE_TAG "Tag" "${DEFAULT_TAG}"
|
||||||
REGISTRY=$(ask "Registry" "")
|
ask REGISTRY "Registry" ""
|
||||||
OWNER=$(ask "Owner" "")
|
ask OWNER "Owner" ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IMAGE_NAME="${IMAGE_NAME:-jukebox-maker}"
|
IMAGE_NAME="${IMAGE_NAME:-jukebox-maker}"
|
||||||
|
|||||||
Reference in New Issue
Block a user