fix: update setup wizard logic to handle terminal availability
Modified the setup wizard to ensure it only skips execution when no terminal is available, improving compatibility with piped installations. Additionally, updated environment variable checks to use bool() for accurate provider configuration detection, addressing potential issues with empty values in .env files.
This commit is contained in:
parent
ffec21236d
commit
73f2998d48
2 changed files with 10 additions and 4 deletions
|
|
@ -395,11 +395,14 @@ def run_setup_wizard(args):
|
||||||
# a template, so it always exists after install. We need an actual
|
# a template, so it always exists after install. We need an actual
|
||||||
# inference provider to consider it "existing" (otherwise quick mode
|
# inference provider to consider it "existing" (otherwise quick mode
|
||||||
# would skip provider selection, leaving hermes non-functional).
|
# would skip provider selection, leaving hermes non-functional).
|
||||||
|
# NOTE: Use bool() not `is not None` — the .env template has empty
|
||||||
|
# values (e.g. OPENROUTER_API_KEY=) that load_dotenv sets to "", which
|
||||||
|
# passes `is not None` but isn't a real configured provider.
|
||||||
from hermes_cli.auth import get_active_provider
|
from hermes_cli.auth import get_active_provider
|
||||||
active_provider = get_active_provider()
|
active_provider = get_active_provider()
|
||||||
is_existing = (
|
is_existing = (
|
||||||
get_env_value("OPENROUTER_API_KEY") is not None
|
bool(get_env_value("OPENROUTER_API_KEY"))
|
||||||
or get_env_value("OPENAI_BASE_URL") is not None
|
or bool(get_env_value("OPENAI_BASE_URL"))
|
||||||
or active_provider is not None
|
or active_provider is not None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -848,8 +848,11 @@ run_setup_wizard() {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$IS_INTERACTIVE" = false ]; then
|
# The setup wizard reads from /dev/tty, so it works even when the
|
||||||
log_info "Setup wizard skipped (non-interactive). Run 'hermes setup' after install."
|
# install script itself is piped (curl | bash). Only skip if no
|
||||||
|
# terminal is available at all (e.g. Docker build, CI).
|
||||||
|
if ! [ -e /dev/tty ]; then
|
||||||
|
log_info "Setup wizard skipped (no terminal available). Run 'hermes setup' after install."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue