From c21365f2042c41f1b46f0d5580689ac80262d2b3 Mon Sep 17 00:00:00 2001 From: MickLesk <47820557+MickLesk@users.noreply.github.com> Date: Fri, 25 Sep 2026 08:07:09 +0200 Subject: [PATCH] Let prompts fall back to their default when there is no input --- install/apache-tomcat-install.sh | 2 +- install/aria2-install.sh | 2 +- install/bichon-install.sh | 2 +- install/bitmagnet-install.sh | 2 +- install/bunkerweb-install.sh | 2 +- install/caddy-install.sh | 4 ++-- install/casaos-install.sh | 2 +- install/channels-install.sh | 2 +- install/docker-install.sh | 10 +++++----- install/dotnetaspwebapi-install.sh | 2 +- install/emqx-install.sh | 2 +- install/fileflows-install.sh | 11 +++++++---- install/forgejo-runner-install.sh | 8 ++++---- install/headscale-install.sh | 2 +- install/hermesagent-install.sh | 2 +- install/immich-install.sh | 2 +- install/influxdb-install.sh | 4 ++-- install/iobroker-install.sh | 2 +- install/kasm-install.sh | 2 +- install/kometa-install.sh | 6 +++--- install/kutt-install.sh | 2 +- install/languagetool-install.sh | 2 +- install/linkwarden-install.sh | 2 +- install/livebook-install.sh | 2 +- install/mariadb-install.sh | 4 ++-- install/mattermost-install.sh | 2 +- install/mediamanager-install.sh | 2 +- install/meilisearch-install.sh | 2 +- install/mysql-install.sh | 4 ++-- install/netbird-install.sh | 10 +++++----- install/nextcloudpi-install.sh | 2 +- install/npmplus-install.sh | 4 ++-- install/openwebui-install.sh | 4 ++-- install/openziti-controller-install.sh | 10 +++++----- install/openziti-tunnel-install.sh | 2 +- install/paperless-ngx-install.sh | 2 +- install/pihole-install.sh | 6 +++--- install/pocketid-install.sh | 2 +- install/podman-homeassistant-install.sh | 4 ++-- install/podman-install.sh | 4 ++-- install/postgresql-install.sh | 8 ++++---- install/sabnzbd-install.sh | 2 +- install/shelfmark-install.sh | 4 ++-- install/sqlserver2022-install.sh | 2 +- install/sqlserver2025-install.sh | 2 +- install/tinyauth-install.sh | 4 ++-- install/valkey-install.sh | 4 ++-- install/victoriametrics-install.sh | 2 +- install/wazuh-install.sh | 2 +- install/wireguard-install.sh | 2 +- install/yunohost-install.sh | 2 +- install/zerotier-one-install.sh | 2 +- 52 files changed, 91 insertions(+), 88 deletions(-) diff --git a/install/apache-tomcat-install.sh b/install/apache-tomcat-install.sh index 73b2bc169..23eee0900 100644 --- a/install/apache-tomcat-install.sh +++ b/install/apache-tomcat-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -read -r -p "${TAB3}Which Tomcat version would you like to install? (9, 10.1, 11): " version +read -r -p "${TAB3}Which Tomcat version would you like to install? (9, 10.1, 11): " version || version="" case $version in 9) TOMCAT_VERSION="9" diff --git a/install/aria2-install.sh b/install/aria2-install.sh index 645efbf5d..98d2921a0 100644 --- a/install/aria2-install.sh +++ b/install/aria2-install.sh @@ -17,7 +17,7 @@ msg_info "Installing Aria2" $STD apt install -y aria2 msg_ok "Installed Aria2" -read -r -p "${TAB3}Would you like to add AriaNG? " prompt +read -r -p "${TAB3}Would you like to add AriaNG? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Dependencies" $STD apt install -y nginx diff --git a/install/bichon-install.sh b/install/bichon-install.sh index fa1c5983e..3f8b9bec2 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -15,7 +15,7 @@ update_os fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.tar.gz" -read -r -p "${TAB3}Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url +read -r -p "${TAB3}Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url || bichon_url="" if [[ -z "$bichon_url" ]]; then msg_info "No URL provided" BICHON_PUBLIC_URL="http://$LOCAL_IP:15630" diff --git a/install/bitmagnet-install.sh b/install/bitmagnet-install.sh index 14e6fdf3a..90e6ab297 100644 --- a/install/bitmagnet-install.sh +++ b/install/bitmagnet-install.sh @@ -34,7 +34,7 @@ setup_deb_based() { chmod +x bitmagnet msg_ok "Configured bitmagnet" - read -r -p "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey + read -r -p "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey || tmdbapikey="" cat </etc/bitmagnet.env POSTGRES_HOST=localhost diff --git a/install/bunkerweb-install.sh b/install/bunkerweb-install.sh index 351bc8a49..0e703edba 100644 --- a/install/bunkerweb-install.sh +++ b/install/bunkerweb-install.sh @@ -25,7 +25,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/caddy-install.sh b/install/caddy-install.sh index 75e511ad0..41a432268 100644 --- a/install/caddy-install.sh +++ b/install/caddy-install.sh @@ -30,7 +30,7 @@ setup_deb_based() { $STD apt install -y caddy msg_ok "Installed Caddy" - read -r -p "${TAB3}Would you like to install xCaddy Addon? " prompt + read -r -p "${TAB3}Would you like to install xCaddy Addon? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then setup_go fetch_and_deploy_gh_release "xcaddy" "caddyserver/xcaddy" "binary" @@ -75,7 +75,7 @@ EOF EOF msg_ok "Installed Caddy" - read -r -p "${TAB3}Would you like to install xCaddy Addon? " prompt + read -r -p "${TAB3}Would you like to install xCaddy Addon? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go msg_info "Setup xCaddy" diff --git a/install/casaos-install.sh b/install/casaos-install.sh index 18cd629d2..69ea27f8a 100644 --- a/install/casaos-install.sh +++ b/install/casaos-install.sh @@ -18,7 +18,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://get.casaos.io/" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/channels-install.sh b/install/channels-install.sh index ceaaac426..92af49819 100644 --- a/install/channels-install.sh +++ b/install/channels-install.sh @@ -24,7 +24,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://getchannels.com/dvr/setup.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/docker-install.sh b/install/docker-install.sh index e042d85f5..43dcb429d 100644 --- a/install/docker-install.sh +++ b/install/docker-install.sh @@ -21,7 +21,7 @@ setup_deb_based() { if prompt_confirm "${TAB3}Would you like to install Portainer (UI) via the community-scripts addon?" "n" 60; then bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y" else - read -r -p "${TAB3}Would you like to install the Portainer Agent (for remote management)? " prompt_agent + read -r -p "${TAB3}Would you like to install the Portainer Agent (for remote management)? " prompt_agent || prompt_agent="" if [[ ${prompt_agent,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer Agent $PORTAINER_AGENT_LATEST_VERSION" $STD docker run -d \ @@ -35,7 +35,7 @@ setup_deb_based() { fi fi - read -r -p "${TAB3}Expose Docker TCP socket (insecure) ? [n = No, l = Local only (127.0.0.1), a = All interfaces (0.0.0.0)] : " socket_choice + read -r -p "${TAB3}Expose Docker TCP socket (insecure) ? [n = No, l = Local only (127.0.0.1), a = All interfaces (0.0.0.0)] : " socket_choice || socket_choice="" case "${socket_choice,,}" in l) socket="tcp://127.0.0.1:2375" @@ -91,7 +91,7 @@ setup_alpine() { DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose") PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent") - read -r -p "${TAB3}Would you like to add Docker Compose? " prompt + read -r -p "${TAB3}Would you like to add Docker Compose? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} @@ -104,7 +104,7 @@ setup_alpine() { if prompt_confirm "${TAB3}Would you like to install Portainer (UI) via the community-scripts addon?" "n" 60; then bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y" else - read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt + read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION" $STD docker run -d \ @@ -118,7 +118,7 @@ setup_alpine() { fi fi - read -r -p "${TAB3}Would you like to expose the Docker TCP socket? " prompt + read -r -p "${TAB3}Would you like to expose the Docker TCP socket? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_info "Exposing Docker TCP socket" $STD mkdir -p /etc/docker diff --git a/install/dotnetaspwebapi-install.sh b/install/dotnetaspwebapi-install.sh index 619efebb5..042180f53 100644 --- a/install/dotnetaspwebapi-install.sh +++ b/install/dotnetaspwebapi-install.sh @@ -27,7 +27,7 @@ $STD apt-get install -y \ msg_ok "Installed Dependencies" var_project_name="default" -read -r -p "${TAB3}Type the assembly name of the project: " var_project_name +read -r -p "${TAB3}Type the assembly name of the project: " var_project_name || var_project_name="" msg_info "Setting up FTP Server" useradd ftpuser diff --git a/install/emqx-install.sh b/install/emqx-install.sh index d08a6d6a1..330d2bba3 100644 --- a/install/emqx-install.sh +++ b/install/emqx-install.sh @@ -38,7 +38,7 @@ rm -f "$DEB_FILE" echo "$LATEST_VERSION" >~/.emqx msg_ok "Installed EMQX" -read -r -p "${TAB3}Would you like to disable the EMQX MQ feature? (reduces disk/CPU usage) " prompt +read -r -p "${TAB3}Would you like to disable the EMQX MQ feature? (reduces disk/CPU usage) " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Disabling EMQX MQ feature" mkdir -p /etc/emqx diff --git a/install/fileflows-install.sh b/install/fileflows-install.sh index 1a18a3c2d..8d6230866 100644 --- a/install/fileflows-install.sh +++ b/install/fileflows-install.sh @@ -45,9 +45,9 @@ $STD ln -svf /usr/bin/ffmpeg /usr/local/bin/ffmpeg $STD ln -svf /usr/bin/ffprobe /usr/local/bin/ffprobe $STD rm -rf /opt/fileflows/Server/runtimes/win-* -read -r -p "${TAB3}Do you want to install FileFlows Server or Agent? (S/A): " install_server +read -r -p "${TAB3}Do you want to install FileFlows Server or Agent? (S/A): " install_server || install_server="" -if [[ "$install_server" =~ ^[Ss]$ ]]; then +if [[ -z "$install_server" || "$install_server" =~ ^[Ss]$ ]]; then msg_info "Installing FileFlows Server" cd /opt/fileflows/Server $STD dotnet FileFlows.Server.dll --systemd install --root true @@ -56,9 +56,12 @@ if [[ "$install_server" =~ ^[Ss]$ ]]; then else msg_info "Installing FileFlows Agent" stop_spinner - read -r -p "${TAB3}Enter FileFlows Server URL (e.g. http://192.168.1.10:19200): " server_url + read -r -p "${TAB3}Enter FileFlows Server URL (e.g. http://192.168.1.10:19200): " server_url || server_url="" while [[ -z "${server_url// /}" ]]; do - read -r -p "${TAB3}Enter FileFlows Server URL (e.g. http://192.168.1.10:19200): " server_url + read -r -p "${TAB3}Enter FileFlows Server URL (e.g. http://192.168.1.10:19200): " server_url || { + msg_error "FileFlows needs a server URL and this run has no input" + exit 1 + } done cd /opt/fileflows/Agent before_units="$(systemctl list-unit-files 'fileflows*' --no-legend 2>/dev/null | awk '{print $1}' | sort || true)" diff --git a/install/forgejo-runner-install.sh b/install/forgejo-runner-install.sh index 94ceb6877..5dbc5ed83 100644 --- a/install/forgejo-runner-install.sh +++ b/install/forgejo-runner-install.sh @@ -15,12 +15,12 @@ update_os setup_yq if [[ -z "${var_forgejo_instance:-}" ]]; then - read -r -p "${TAB3}Forgejo Instance URL (e.g. https://codeberg.org): " var_forgejo_instance + read -r -p "${TAB3}Forgejo Instance URL (e.g. https://codeberg.org): " var_forgejo_instance || var_forgejo_instance="" var_forgejo_instance="${var_forgejo_instance:-https://codeberg.org}" fi if [[ -z "${var_forgejo_runner_uuid:-}" ]]; then - read -r -p "${TAB3}Forgejo Runner UUID: " var_forgejo_runner_uuid + read -r -p "${TAB3}Forgejo Runner UUID: " var_forgejo_runner_uuid || var_forgejo_runner_uuid="" fi if [[ -z "${var_forgejo_runner_uuid:-}" ]]; then @@ -29,7 +29,7 @@ if [[ -z "${var_forgejo_runner_uuid:-}" ]]; then fi if [[ -z "${var_forgejo_runner_token:-}" ]]; then - read -r -p "${TAB3}Forgejo Runner Token: " var_forgejo_runner_token + read -r -p "${TAB3}Forgejo Runner Token: " var_forgejo_runner_token || var_forgejo_runner_token="" fi if [[ -z "${var_forgejo_runner_token:-}" ]]; then @@ -39,7 +39,7 @@ fi DEFAULT_RUNNER_LABELS="linux-amd64:docker://node:22-bookworm" if [[ -z "${var_runner_labels:-}" ]]; then - read -r -p "${TAB3}Additional runner labels (comma-separated, or leave blank for default only): " var_runner_labels + read -r -p "${TAB3}Additional runner labels (comma-separated, or leave blank for default only): " var_runner_labels || var_runner_labels="" fi if [[ -n "${var_runner_labels:-}" ]]; then RUNNER_LABELS="${DEFAULT_RUNNER_LABELS},${var_runner_labels}" diff --git a/install/headscale-install.sh b/install/headscale-install.sh index 4e1ea38c3..f18b2a637 100644 --- a/install/headscale-install.sh +++ b/install/headscale-install.sh @@ -15,7 +15,7 @@ update_os fetch_and_deploy_gh_release "headscale" "juanfont/headscale" "binary" -read -r -p "${TAB3}Would you like to add headscale-admin UI? " prompt +read -r -p "${TAB3}Would you like to add headscale-admin UI? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip" diff --git a/install/hermesagent-install.sh b/install/hermesagent-install.sh index 41e2a71c4..c7a0f9906 100644 --- a/install/hermesagent-install.sh +++ b/install/hermesagent-install.sh @@ -38,7 +38,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://hermes-agent.nousresearch.com/install.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/immich-install.sh b/install/immich-install.sh index 25a391cb7..63321db98 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -24,7 +24,7 @@ if lscpu | grep -q 'GenuineIntel'; then echo " 2) **NEW** Intel OpenVINO CPU or iGPU" echo "" - read -r -p "${TAB3}Select machine-learning type [1]: " ML_TYPE + read -r -p "${TAB3}Select machine-learning type [1]: " ML_TYPE || ML_TYPE="" ML_TYPE="${ML_TYPE:-1}" if [[ "$ML_TYPE" == "2" ]]; then touch ~/.openvino diff --git a/install/influxdb-install.sh b/install/influxdb-install.sh index 772b22d21..1ef650a25 100644 --- a/install/influxdb-install.sh +++ b/install/influxdb-install.sh @@ -21,7 +21,7 @@ setup_deb822_repo \ "stable" msg_ok "Set up InfluxDB Repository" -read -r -p "${TAB3}Which version of InfluxDB to install? (1, 2 or 3) " prompt +read -r -p "${TAB3}Which version of InfluxDB to install? (1, 2 or 3) " prompt || prompt="" if [[ $prompt == "3" ]]; then INFLUX="3" elif [[ $prompt == "2" ]]; then @@ -50,7 +50,7 @@ else fi msg_ok "Installed InfluxDB" -read -r -p "${TAB3}Would you like to add Telegraf? " prompt +read -r -p "${TAB3}Would you like to add Telegraf? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_info "Installing Telegraf" $STD apt install -y telegraf diff --git a/install/iobroker-install.sh b/install/iobroker-install.sh index e6bfbe725..2c5f25639 100644 --- a/install/iobroker-install.sh +++ b/install/iobroker-install.sh @@ -22,7 +22,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://iobroker.net/install.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/kasm-install.sh b/install/kasm-install.sh index d921933a4..c34b6cc3b 100644 --- a/install/kasm-install.sh +++ b/install/kasm-install.sh @@ -61,7 +61,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ install.sh inside tar.gz $KASM_URL" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/kometa-install.sh b/install/kometa-install.sh index 0b2e90578..a399d04df 100644 --- a/install/kometa-install.sh +++ b/install/kometa-install.sh @@ -28,9 +28,9 @@ mkdir -p config/assets cp config/config.yml.template config/config.yml msg_ok "Setup Kometa" -read -r -p "${TAB3}Enter your TMDb API key: " TMDBKEY -read -r -p "${TAB3}Enter your Plex URL: " PLEXURL -read -r -p "${TAB3}Enter your Plex token: " PLEXTOKEN +read -r -p "${TAB3}Enter your TMDb API key: " TMDBKEY || TMDBKEY="" +read -r -p "${TAB3}Enter your Plex URL: " PLEXURL || PLEXURL="" +read -r -p "${TAB3}Enter your Plex token: " PLEXTOKEN || PLEXTOKEN="" sed -i '/^plex:/,/^[^ ]/{s| url:.*| url: '"$PLEXURL"'|}' /opt/kometa/config/config.yml sed -i '/^plex:/,/^[^ ]/{s| token:.*| token: '"$PLEXTOKEN"'|}' /opt/kometa/config/config.yml sed -i '/^tmdb:/,/^[^ ]/{s| apikey:.*| apikey: '"$TMDBKEY"'|}' /opt/kometa/config/config.yml diff --git a/install/kutt-install.sh b/install/kutt-install.sh index 05526ec98..a585b193e 100644 --- a/install/kutt-install.sh +++ b/install/kutt-install.sh @@ -32,7 +32,7 @@ EOF msg_ok "Configured Caddy" ;; e) - read -r -p "${TAB3}Enter the hostname you want to use for Kutt (eg. kutt.example.com): " custom_host + read -r -p "${TAB3}Enter the hostname you want to use for Kutt (eg. kutt.example.com): " custom_host || custom_host="" if [[ "$custom_host" ]]; then DEFAULT_HOST="$custom_host" fi diff --git a/install/languagetool-install.sh b/install/languagetool-install.sh index dd6930e44..0de02f6b0 100644 --- a/install/languagetool-install.sh +++ b/install/languagetool-install.sh @@ -34,7 +34,7 @@ max_attempts=3 attempt=0 while [[ $attempt -lt $max_attempts ]]; do - read -r -p "${TAB3}Enter language code (en, de, es, fr, nl) to download ngrams or press ENTER to skip: " lang_code + read -r -p "${TAB3}Enter language code (en, de, es, fr, nl) to download ngrams or press ENTER to skip: " lang_code || lang_code="" if [[ -z "$lang_code" ]]; then break diff --git a/install/linkwarden-install.sh b/install/linkwarden-install.sh index 93d9ab841..dd2c10c7d 100644 --- a/install/linkwarden-install.sh +++ b/install/linkwarden-install.sh @@ -24,7 +24,7 @@ PG_VERSION="16" setup_postgresql RUST_CRATES="monolith" setup_rust PG_DB_NAME="linkwardendb" PG_DB_USER="linkwarden" setup_postgresql_db -read -r -p "${TAB3}Would you like to add Adminer? " prompt +read -r -p "${TAB3}Would you like to add Adminer? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then setup_adminer fi diff --git a/install/livebook-install.sh b/install/livebook-install.sh index d09e3d800..ced89da74 100644 --- a/install/livebook-install.sh +++ b/install/livebook-install.sh @@ -33,7 +33,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://elixir-lang.org/install.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/mariadb-install.sh b/install/mariadb-install.sh index 8a5d200fc..a89244e0c 100644 --- a/install/mariadb-install.sh +++ b/install/mariadb-install.sh @@ -21,7 +21,7 @@ setup_deb_based() { sed -i 's/^bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf msg_ok "Setup MariaDB" - read -r -p "${TAB3}Would you like to add PhpMyAdmin? " prompt + read -r -p "${TAB3}Would you like to add PhpMyAdmin? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing phpMyAdmin" $STD apt install -y \ @@ -58,7 +58,7 @@ setup_alpine() { $STD rc-service mariadb start msg_ok "MariaDB Configured" - read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt + read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Adminer and dependencies" $STD apk add --no-cache \ diff --git a/install/mattermost-install.sh b/install/mattermost-install.sh index 3b698abd7..a74684a1f 100644 --- a/install/mattermost-install.sh +++ b/install/mattermost-install.sh @@ -18,7 +18,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://deb.packages.mattermost.com/repo-setup.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/mediamanager-install.sh b/install/mediamanager-install.sh index 6f9326e3c..f33d38fc6 100644 --- a/install/mediamanager-install.sh +++ b/install/mediamanager-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -read -r -p "${TAB3}Enter the email address of your first admin user: " admin_email +read -r -p "${TAB3}Enter the email address of your first admin user: " admin_email || admin_email="" if [[ "$admin_email" ]]; then EMAIL="$admin_email" fi diff --git a/install/meilisearch-install.sh b/install/meilisearch-install.sh index ede7cd80a..0ad6f8b6b 100644 --- a/install/meilisearch-install.sh +++ b/install/meilisearch-install.sh @@ -15,7 +15,7 @@ update_os MEILISEARCH_BIND="0.0.0.0:7700" setup_meilisearch -read -r -p "${TAB3}Do you want add meilisearch-ui? [y/n]: " prompt +read -r -p "${TAB3}Do you want add meilisearch-ui? [y/n]: " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs fetch_and_deploy_gh_release "meilisearch-ui" "riccox/meilisearch-ui" "tarball" diff --git a/install/mysql-install.sh b/install/mysql-install.sh index 0dd98cce7..8331da38a 100644 --- a/install/mysql-install.sh +++ b/install/mysql-install.sh @@ -21,7 +21,7 @@ msg_ok "Installed Dependencies" RELEASE_REPO="mysql-8.0" RELEASE_AUTH="mysql_native_password" -read -r -p "${TAB3}Would you like to install the MySQL 8.4 LTS release instead of MySQL 8.0 (bug fix track; EOL April-2026)? " prompt +read -r -p "${TAB3}Would you like to install the MySQL 8.4 LTS release instead of MySQL 8.0 (bug fix track; EOL April-2026)? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then RELEASE_REPO="mysql-8.4-lts" RELEASE_AUTH="caching_sha2_password" @@ -61,7 +61,7 @@ echo -e "MySQL user: root" >>~/mysql.creds echo -e "MySQL password: $ADMIN_PASS" >>~/mysql.creds msg_ok "MySQL Server configured" -read -r -p "${TAB3}Would you like to add PhpMyAdmin? " prompt +read -r -p "${TAB3}Would you like to add PhpMyAdmin? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/phpmyadmin.sh)" fi diff --git a/install/netbird-install.sh b/install/netbird-install.sh index b296adf29..7a22b9b11 100644 --- a/install/netbird-install.sh +++ b/install/netbird-install.sh @@ -36,7 +36,7 @@ echo " 1) NetBird Managed (default) - Use NetBird's managed service" echo " 2) Self-Hosted - Use your own NetBird management server" echo "" -read -r -p "${TAB3}Select deployment type [1]: " DEPLOYMENT_TYPE +read -r -p "${TAB3}Select deployment type [1]: " DEPLOYMENT_TYPE || DEPLOYMENT_TYPE="" DEPLOYMENT_TYPE="${DEPLOYMENT_TYPE:-1}" NETBIRD_MGMT_URL="" @@ -51,7 +51,7 @@ case "$DEPLOYMENT_TYPE" in echo "Enter your NetBird management server URL." echo "Example: https://management.example.com" echo "" - read -r -p "Management URL: " NETBIRD_MGMT_URL + read -r -p "Management URL: " NETBIRD_MGMT_URL || NETBIRD_MGMT_URL="" if [[ -z "$NETBIRD_MGMT_URL" ]]; then msg_warn "No management URL provided. Run 'netbird up --management-url ' to connect." @@ -81,7 +81,7 @@ else fi echo "" -read -r -p "Select authentication method [1]: " AUTH_METHOD +read -r -p "Select authentication method [1]: " AUTH_METHOD || AUTH_METHOD="" AUTH_METHOD="${AUTH_METHOD:-1}" if [[ "$DEPLOYMENT_TYPE" == "1" ]]; then @@ -90,7 +90,7 @@ if [[ "$DEPLOYMENT_TYPE" == "1" ]]; then echo "" echo "Enter your NetBird setup key from the NetBird dashboard." echo "" - read -r -p "Setup key: " NETBIRD_SETUP_KEY + read -r -p "Setup key: " NETBIRD_SETUP_KEY || NETBIRD_SETUP_KEY="" echo "" if [[ -z "$NETBIRD_SETUP_KEY" ]]; then @@ -136,7 +136,7 @@ else echo "" echo "Enter your NetBird setup key from the NetBird dashboard." echo "" - read -r -p "Setup key: " NETBIRD_SETUP_KEY + read -r -p "Setup key: " NETBIRD_SETUP_KEY || NETBIRD_SETUP_KEY="" echo "" if [[ -z "$NETBIRD_SETUP_KEY" ]]; then diff --git a/install/nextcloudpi-install.sh b/install/nextcloudpi-install.sh index 51ea39eba..4da6d7d2f 100644 --- a/install/nextcloudpi-install.sh +++ b/install/nextcloudpi-install.sh @@ -18,7 +18,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/npmplus-install.sh b/install/npmplus-install.sh index 7424d5d5e..a516804cb 100644 --- a/install/npmplus-install.sh +++ b/install/npmplus-install.sh @@ -42,7 +42,7 @@ msg_ok "Fetched NPMplus" attempts=0 while true; do - read -r -p "${TAB3}Enter your TZ Identifier (e.g., Europe/Berlin): " TZ_INPUT + read -r -p "${TAB3}Enter your TZ Identifier (e.g., Europe/Berlin): " TZ_INPUT || TZ_INPUT="" if validate_tz "$TZ_INPUT"; then break fi @@ -55,7 +55,7 @@ while true; do fi done -read -r -p "${TAB3}Enter your ACME Email: " ACME_EMAIL_INPUT +read -r -p "${TAB3}Enter your ACME Email: " ACME_EMAIL_INPUT || ACME_EMAIL_INPUT="" yq -i " .services.npmplus.environment |= diff --git a/install/openwebui-install.sh b/install/openwebui-install.sh index fd46db8ed..2a646359a 100644 --- a/install/openwebui-install.sh +++ b/install/openwebui-install.sh @@ -26,7 +26,7 @@ setup_hwaccel PYTHON_VERSION="3.12" setup_uv OTEL_ARGS=() -read -r -p "${TAB3}Would you like to install OpenTelemetry instrumentation packages (requires manual .env configuration)? " prompt +read -r -p "${TAB3}Would you like to install OpenTelemetry instrumentation packages (requires manual .env configuration)? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then for pkg in \ opentelemetry-api \ @@ -53,7 +53,7 @@ for attempt in $(seq 1 3); do done msg_ok "Installed Open WebUI" -read -r -p "${TAB3}Would you like to add Ollama? " prompt +read -r -p "${TAB3}Would you like to add Ollama? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then if [[ "$(arch_resolve)" == "amd64" ]]; then msg_info "Setting up Intel® Repositories" diff --git a/install/openziti-controller-install.sh b/install/openziti-controller-install.sh index 9af0bf877..6d062f59b 100644 --- a/install/openziti-controller-install.sh +++ b/install/openziti-controller-install.sh @@ -27,17 +27,17 @@ apt_update_safe $STD apt install -y openziti-controller openziti-console " prompt +read -r -p "${TAB3}Would you like to go through the auto configuration now? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then GEN_FQDN="controller.${LOCAL_IP}.sslip.io" - read -r -p "${TAB3}Please enter the controller FQDN [${GEN_FQDN}]: " ZITI_CTRL_ADVERTISED_ADDRESS + read -r -p "${TAB3}Please enter the controller FQDN [${GEN_FQDN}]: " ZITI_CTRL_ADVERTISED_ADDRESS || ZITI_CTRL_ADVERTISED_ADDRESS="" ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-$GEN_FQDN} - read -r -p "${TAB3}Please enter the controller port [1280]: " ZITI_CTRL_ADVERTISED_PORT + read -r -p "${TAB3}Please enter the controller port [1280]: " ZITI_CTRL_ADVERTISED_PORT || ZITI_CTRL_ADVERTISED_PORT="" ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-1280} - read -r -p "${TAB3}Please enter the controller admin user [admin]: " ZITI_USER + read -r -p "${TAB3}Please enter the controller admin user [admin]: " ZITI_USER || ZITI_USER="" ZITI_USER=${ZITI_USER:-admin} GEN_PWD=$(head -c128 /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^*_+~' | cut -c 1-12) - read -r -p "${TAB3}Please enter the controller admin password [${GEN_PWD}]:" ZITI_PWD + read -r -p "${TAB3}Please enter the controller admin password [${GEN_PWD}]:" ZITI_PWD || ZITI_PWD="" ZITI_PWD=${ZITI_PWD:-$GEN_PWD} CONFIG_FILE="/opt/openziti/etc/controller/bootstrap.env" sed -i "s|^ZITI_CTRL_ADVERTISED_ADDRESS=.*|ZITI_CTRL_ADVERTISED_ADDRESS='${ZITI_CTRL_ADVERTISED_ADDRESS}'|" "$CONFIG_FILE" diff --git a/install/openziti-tunnel-install.sh b/install/openziti-tunnel-install.sh index 21074022d..c8a03ff00 100644 --- a/install/openziti-tunnel-install.sh +++ b/install/openziti-tunnel-install.sh @@ -29,7 +29,7 @@ sed -i '0,/^ExecStart/ { /^ExecStart/ { n; s|^ExecStart.*|ExecStart=/opt/openzit systemctl daemon-reload msg_ok "Installed openziti" -read -r -p "${TAB3}Please paste an identity enrollment token(JTW)" prompt +read -r -p "${TAB3}Please paste an identity enrollment token(JTW)" prompt || prompt="" if [[ ${prompt} ]]; then msg_info "Adding identity" echo "${prompt}" >/opt/openziti/etc/identities/identity.jwt diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh index d8a1cc9c5..f68adebfc 100644 --- a/install/paperless-ngx-install.sh +++ b/install/paperless-ngx-install.sh @@ -163,7 +163,7 @@ EOF systemctl enable -q --now paperless-webserver paperless-scheduler paperless-task-queue paperless-consumer msg_ok "Created Services" -read -r -p "${TAB3}Would you like to add Adminer? " prompt +read -r -p "${TAB3}Would you like to add Adminer? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then setup_adminer fi diff --git a/install/pihole-install.sh b/install/pihole-install.sh index 547d79f23..459c2fb28 100644 --- a/install/pihole-install.sh +++ b/install/pihole-install.sh @@ -18,7 +18,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://install.pi-hole.net" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 @@ -65,9 +65,9 @@ $STD pihole-FTL --config ntp.sync.interval 0 systemctl restart pihole-FTL.service msg_ok "Installed Pi-hole" -read -r -p "${TAB3}Would you like to add Unbound? " prompt +read -r -p "${TAB3}Would you like to add Unbound? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - read -r -p "${TAB3}Unbound is configured as a recursive DNS server by default, would you like it to be configured as a forwarding DNS server (using DNS-over-TLS (DoT)) instead? " prompt + read -r -p "${TAB3}Unbound is configured as a recursive DNS server by default, would you like it to be configured as a forwarding DNS server (using DNS-over-TLS (DoT)) instead? " prompt || prompt="" msg_info "Installing Unbound" mkdir -p /etc/unbound/unbound.conf.d cat </etc/unbound/unbound.conf.d/pi-hole.conf diff --git a/install/pocketid-install.sh b/install/pocketid-install.sh index 11b8fa591..ab2c2f9a7 100644 --- a/install/pocketid-install.sh +++ b/install/pocketid-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -read -r -p "${TAB3}What public URL do you want to use (e.g. pocketid.mydomain.com)? " public_url +read -r -p "${TAB3}What public URL do you want to use (e.g. pocketid.mydomain.com)? " public_url || public_url="" fetch_and_deploy_gh_release "pocket-id" "pocket-id/pocket-id" "singlefile" "latest" "/opt/pocket-id/" "pocket-id_linux_$(arch_resolve)" msg_info "Configuring Pocket ID" diff --git a/install/podman-homeassistant-install.sh b/install/podman-homeassistant-install.sh index 03fb87b4d..780ec0ad1 100644 --- a/install/podman-homeassistant-install.sh +++ b/install/podman-homeassistant-install.sh @@ -47,7 +47,7 @@ msg_ok "Installed Podman" mkdir -p /etc/containers/systemd -read -r -p "${TAB3}Would you like to add Portainer? " prompt +read -r -p "${TAB3}Would you like to add Portainer? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer $PORTAINER_LATEST_VERSION" podman volume create portainer_data >/dev/null @@ -74,7 +74,7 @@ EOF $STD systemctl start portainer msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION" else - read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt + read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION" cat </etc/containers/systemd/portainer-agent.container diff --git a/install/podman-install.sh b/install/podman-install.sh index 6e1cd58c2..d06ab9ff0 100644 --- a/install/podman-install.sh +++ b/install/podman-install.sh @@ -47,7 +47,7 @@ msg_ok "Installed Podman" mkdir -p /etc/containers/systemd -read -r -p "${TAB3}Would you like to add Portainer? " prompt +read -r -p "${TAB3}Would you like to add Portainer? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer $PORTAINER_LATEST_VERSION" podman volume create portainer_data >/dev/null @@ -75,7 +75,7 @@ EOF $STD systemctl start portainer msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION" else - read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt + read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION" $STD podman pull docker.io/portainer/agent:latest diff --git a/install/postgresql-install.sh b/install/postgresql-install.sh index d6b6cd11a..00c6d2f1a 100644 --- a/install/postgresql-install.sh +++ b/install/postgresql-install.sh @@ -14,7 +14,7 @@ network_check update_os setup_deb_based() { - read -r -p "${TAB3}Enter PostgreSQL version (15/16/17/18): " ver + read -r -p "${TAB3}Enter PostgreSQL version (15/16/17/18): " ver || ver="" [[ $ver =~ ^(15|16|17|18)$ ]] || { echo "Invalid version" exit 64 @@ -124,7 +124,7 @@ EOF systemctl restart postgresql msg_ok "Installed PostgreSQL" - read -r -p "${TAB3}Would you like to add Adminer? " prompt + read -r -p "${TAB3}Would you like to add Adminer? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_info "Installing Adminer" $STD apt install -y adminer @@ -135,7 +135,7 @@ EOF } setup_alpine() { - read -r -p "${TAB3}Enter PostgreSQL version (15/16/17): " ver + read -r -p "${TAB3}Enter PostgreSQL version (15/16/17): " ver || ver="" [[ $ver =~ ^(15|16|17)$ ]] || { echo "Invalid version"; exit 64; } msg_info "Installing PostgreSQL ${ver}" @@ -158,7 +158,7 @@ setup_alpine() { $STD rc-service postgresql restart msg_ok "Configured and Restarted PostgreSQL" - read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt + read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Adminer and dependencies" $STD apk add --no-cache \ diff --git a/install/sabnzbd-install.sh b/install/sabnzbd-install.sh index df8542149..0e6ea8867 100644 --- a/install/sabnzbd-install.sh +++ b/install/sabnzbd-install.sh @@ -40,7 +40,7 @@ $STD uv venv --clear /opt/sabnzbd/venv $STD uv pip install -r /opt/sabnzbd/requirements.txt --python=/opt/sabnzbd/venv/bin/python msg_ok "Installed SABnzbd" -read -r -p "Would you like to install par2cmdline-turbo? " prompt +read -r -p "Would you like to install par2cmdline-turbo? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then mv /usr/bin/par2 /usr/bin/par2.old fetch_and_deploy_gh_release "par2cmdline-turbo" "animetosho/par2cmdline-turbo" "prebuild" "latest" "/usr/bin/" "*-linux-$(arch_resolve).zip" diff --git a/install/shelfmark-install.sh b/install/shelfmark-install.sh index 8c5cfbf59..be05c8a93 100644 --- a/install/shelfmark-install.sh +++ b/install/shelfmark-install.sh @@ -47,7 +47,7 @@ echo " 3) Use an existing Flaresolverr/Byparr LXC" echo " 4) Disable captcha bypassing altogether (not recommended)" echo "" -read -r -p "${TAB3}Select deployment type [1]: " DEPLOYMENT_TYPE +read -r -p "${TAB3}Select deployment type [1]: " DEPLOYMENT_TYPE || DEPLOYMENT_TYPE="" DEPLOYMENT_TYPE="${DEPLOYMENT_TYPE:-1}" if [[ "$(arch_resolve)" == "arm64" && "$DEPLOYMENT_TYPE" == "2" ]]; then msg_warn "FlareSolverr has no arm64 build; using Shelfmark's internal bypasser instead" @@ -69,7 +69,7 @@ case "$DEPLOYMENT_TYPE" in echo "Example: http://flaresoverr.homelab.lan:8191 or" echo "http://192.168.10.99:8191" echo "" - read -r -p "FlareSolverr/Byparr URL: " BYPASSER_URL + read -r -p "FlareSolverr/Byparr URL: " BYPASSER_URL || BYPASSER_URL="" if [[ -z "$BYPASSER_URL" ]]; then msg_warn "No Flaresolverr/Byparr URL provided. Falling back to Shelfmark's internal bypasser." diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index d0d6b6e6a..f44803579 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -46,7 +46,7 @@ echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >>~/.bash_profile source ~/.bash_profile msg_ok "Installed SQL Server Tools" -read -r -p "${TAB3}Do you want to run the SQL server setup now? (Later is also possible) " prompt +read -r -p "${TAB3}Do you want to run the SQL server setup now? (Later is also possible) " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then /opt/mssql/bin/mssql-conf setup else diff --git a/install/sqlserver2025-install.sh b/install/sqlserver2025-install.sh index fe89280b9..6ba5ca67b 100644 --- a/install/sqlserver2025-install.sh +++ b/install/sqlserver2025-install.sh @@ -46,7 +46,7 @@ echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >>~/.bash_profile source ~/.bash_profile msg_ok "Installed SQL Server Tools" -read -r -p "${TAB3}Do you want to run the SQL Server setup now? (Later is also possible) " prompt +read -r -p "${TAB3}Do you want to run the SQL Server setup now? (Later is also possible) " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then /opt/mssql/bin/mssql-conf setup else diff --git a/install/tinyauth-install.sh b/install/tinyauth-install.sh index 7ec13281a..b68315beb 100644 --- a/install/tinyauth-install.sh +++ b/install/tinyauth-install.sh @@ -32,7 +32,7 @@ Password: ${PASS} EOF msg_ok "Set up Tinyauth" - read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url + read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url || app_url="" msg_info "Creating Service" cat </opt/tinyauth/.env @@ -80,7 +80,7 @@ EOF echo "${RELEASE}" >~/.tinyauth msg_ok "Installed Tinyauth" - read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url + read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url || app_url="" cat </opt/tinyauth/.env TINYAUTH_DATABASE_PATH=/opt/tinyauth/database.db diff --git a/install/valkey-install.sh b/install/valkey-install.sh index c9ade3aec..d978c962d 100644 --- a/install/valkey-install.sh +++ b/install/valkey-install.sh @@ -36,9 +36,9 @@ setup_deb_based() { msg_ok "Installed Valkey" echo - read -r -p "${TAB3}Enable TLS for Valkey (Sentinel mode does not supported)? [y/N]: " prompt + read -r -p "${TAB3}Enable TLS for Valkey (Sentinel mode does not supported)? [y/N]: " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - read -r -p "${TAB3}Use TLS-only mode (disable TCP port 6379)? [y/N]: " tls_only + read -r -p "${TAB3}Use TLS-only mode (disable TCP port 6379)? [y/N]: " tls_only || tls_only="" msg_info "Configuring TLS for Valkey..." create_self_signed_cert "Valkey" diff --git a/install/victoriametrics-install.sh b/install/victoriametrics-install.sh index fefe732ca..975234b47 100644 --- a/install/victoriametrics-install.sh +++ b/install/victoriametrics-install.sh @@ -27,7 +27,7 @@ msg_ok "Got version $victoriametrics_release of VictoriaMetrics" fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "$victoriametrics_release" "/opt/victoriametrics" "$victoriametrics_filename" fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "$victoriametrics_release" "/opt/victoriametrics" "$vmutils_filename" -read -r -p "${TAB3}Would you like to add VictoriaLogs? " prompt +read -r -p "${TAB3}Would you like to add VictoriaLogs? " prompt || prompt="" if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then vl_release_json="$(mktemp)" diff --git a/install/wazuh-install.sh b/install/wazuh-install.sh index 97698b8ea..5bc8381ee 100644 --- a/install/wazuh-install.sh +++ b/install/wazuh-install.sh @@ -20,7 +20,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://packages.wazuh.com/$RELEASE/wazuh-install.sh " echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/wireguard-install.sh b/install/wireguard-install.sh index 93a2d7ffd..669bfb872 100644 --- a/install/wireguard-install.sh +++ b/install/wireguard-install.sh @@ -24,7 +24,7 @@ setup_deb_based() { $STD netfilter-persistent reload msg_ok "Installed WireGuard" - read -r -p "${TAB3}Would you like to add WGDashboard? " prompt + read -r -p "${TAB3}Would you like to add WGDashboard? " prompt || prompt="" if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then git clone -q https://github.com/WGDashboard/WGDashboard.git /etc/wgdashboard diff --git a/install/yunohost-install.sh b/install/yunohost-install.sh index 437e6e2d2..ee7b4af26 100644 --- a/install/yunohost-install.sh +++ b/install/yunohost-install.sh @@ -25,7 +25,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://install.yunohost.org" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10 diff --git a/install/zerotier-one-install.sh b/install/zerotier-one-install.sh index 6fd368011..b8c268cfe 100644 --- a/install/zerotier-one-install.sh +++ b/install/zerotier-one-install.sh @@ -18,7 +18,7 @@ msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://install.zerotier.com" echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM || CONFIRM="" if [[ ! $CONFIRM =~ ^([yY][eE][sS]|[yY])$ ]]; then msg_error "Aborted by user. No changes have been made." exit 10