KI-AGENT: Nutze Terminaleingabe im Selfhost Installer
All checks were successful
Build and Push Docker Images / build-backend (push) Successful in 11s
Build and Push Docker Images / build-frontend (push) Successful in 10s
Build and Push Docker Images / build-website (push) Successful in 11s
Build and Push Docker Images / build-docs (push) Successful in 11s

This commit is contained in:
2026-05-19 22:14:51 +02:00
parent 0cfa6a691b
commit 6157d7e27d
2 changed files with 39 additions and 7 deletions

View File

@@ -6,6 +6,12 @@ FEDEO_REF="${FEDEO_REF:-dev}"
FEDEO_DIR="${FEDEO_DIR:-/opt/fedeo}"
SETUP_ARGS=("$@")
FEDEO_USE_SUDO_DOCKER="${FEDEO_USE_SUDO_DOCKER:-false}"
TTY_INPUT="${FEDEO_TTY_INPUT:-/dev/tty}"
TTY_FD=""
if { exec 3<"$TTY_INPUT"; } 2>/dev/null; then
TTY_FD="3"
fi
SUDO=""
if [[ "$(id -u)" -ne 0 ]]; then
@@ -35,13 +41,21 @@ Umgebung:
USAGE
}
read_interactive() {
if [[ -n "$TTY_FD" ]]; then
read -u "$TTY_FD" "$@"
else
read "$@"
fi
}
yes_no() {
local label="$1"
local default_value="${2:-j}"
local answer
while true; do
read -r -p "$label [$default_value]: " answer
read_interactive -r -p "$label [$default_value]: " answer
answer="${answer:-$default_value}"
case "$answer" in
y|Y|j|J|yes|Yes|ja|Ja)
@@ -179,6 +193,10 @@ EOF
echo "Starte Selfhost-Assistent..."
cd "$FEDEO_DIR"
export FEDEO_USE_SUDO_DOCKER
export FEDEO_TTY_INPUT="$TTY_INPUT"
if [[ "$TTY_INPUT" == "/dev/tty" && -r "$TTY_INPUT" ]]; then
exec bash scripts/selfhost-setup.sh "${SETUP_ARGS[@]}" <"$TTY_INPUT"
fi
exec bash scripts/selfhost-setup.sh "${SETUP_ARGS[@]}"
}

View File

@@ -9,6 +9,20 @@ COMPOSE_FILE="$ROOT_DIR/docker-compose.selfhost.yml"
MODE=""
START_STACK="ask"
FORCE="false"
TTY_INPUT="${FEDEO_TTY_INPUT:-/dev/tty}"
TTY_FD=""
if { exec 3<"$TTY_INPUT"; } 2>/dev/null; then
TTY_FD="3"
fi
read_interactive() {
if [[ -n "$TTY_FD" ]]; then
read -u "$TTY_FD" "$@"
else
read "$@"
fi
}
compose() {
if [[ "${FEDEO_USE_SUDO_DOCKER:-false}" == "true" ]]; then
@@ -94,10 +108,10 @@ prompt() {
local value
if [[ -n "$default_value" ]]; then
read -r -p "$label [$default_value]: " value
read_interactive -r -p "$label [$default_value]: " value
echo "${value:-$default_value}"
else
read -r -p "$label: " value
read_interactive -r -p "$label: " value
echo "$value"
fi
}
@@ -123,11 +137,11 @@ prompt_secret() {
local value
if [[ -n "$default_value" ]]; then
read -r -s -p "$label [vorbelegt, Enter übernimmt]: " value
read_interactive -r -s -p "$label [vorbelegt, Enter übernimmt]: " value
echo >&2
echo "${value:-$default_value}"
else
read -r -s -p "$label: " value
read_interactive -r -s -p "$label: " value
echo >&2
echo "$value"
fi
@@ -139,7 +153,7 @@ yes_no() {
local answer
while true; do
read -r -p "$label [$default_value]: " answer
read_interactive -r -p "$label [$default_value]: " answer
answer="${answer:-$default_value}"
case "$answer" in
y|Y|j|J|yes|Yes|ja|Ja)
@@ -168,7 +182,7 @@ choose_mode() {
local choice
while true; do
read -r -p "Modus wählen [1]: " choice
read_interactive -r -p "Modus wählen [1]: " choice
case "${choice:-1}" in
1|einfach|simple)
MODE="simple"