mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-11 22:53:00 +00:00
feat(install): show auth method and dev token in install output
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
bb63182dba
commit
ad192fcbed
1 changed files with 60 additions and 2 deletions
|
|
@ -23,6 +23,7 @@ use fabro_server::bind::Bind;
|
|||
use fabro_server::serve;
|
||||
use fabro_store::ArtifactStore;
|
||||
use fabro_types::settings::cli::{CliLayer, OutputFormat};
|
||||
use fabro_types::settings::server::ServerAuthMethod;
|
||||
use fabro_types::settings::{CliSettings, SettingsLayer};
|
||||
use fabro_util::printer::Printer;
|
||||
use fabro_util::terminal::Styles;
|
||||
|
|
@ -104,6 +105,40 @@ fn generate_jwt_keypair() -> Result<(String, String)> {
|
|||
))
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Auth status display
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
fn print_auth_status(
|
||||
methods: &[ServerAuthMethod],
|
||||
dev_token: Option<&str>,
|
||||
s: &Styles,
|
||||
printer: Printer,
|
||||
) {
|
||||
if let Some(token) = dev_token.filter(|_| methods.contains(&ServerAuthMethod::DevToken)) {
|
||||
fabro_util::printerr!(
|
||||
printer,
|
||||
" {} Auth (Dev Token): {}",
|
||||
s.green.apply_to("✔"),
|
||||
token
|
||||
);
|
||||
} else {
|
||||
let names: Vec<&str> = methods
|
||||
.iter()
|
||||
.map(|m| match m {
|
||||
ServerAuthMethod::DevToken => "dev-token",
|
||||
ServerAuthMethod::Github => "github",
|
||||
})
|
||||
.collect();
|
||||
fabro_util::printerr!(
|
||||
printer,
|
||||
" {} Auth: {}",
|
||||
s.green.apply_to("✔"),
|
||||
names.join(", ")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Config TOML generation
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
@ -1678,10 +1713,21 @@ async fn run_install_github_inner(
|
|||
InstallServerRestartOutcome::Started(bind) => {
|
||||
fabro_util::printerr!(
|
||||
printer,
|
||||
" {} Server running at {}",
|
||||
" {} Server running at http://{}",
|
||||
s.green.apply_to("✔"),
|
||||
bind
|
||||
);
|
||||
let methods = fabro_config::parse_settings_layer(&settings_toml)
|
||||
.ok()
|
||||
.and_then(|layer| layer.server)
|
||||
.and_then(|srv| srv.auth)
|
||||
.and_then(|auth| auth.methods)
|
||||
.unwrap_or_default();
|
||||
let token = dev_token::read_dev_token_file(
|
||||
&Storage::new(&storage_dir).server_state().dev_token_path(),
|
||||
);
|
||||
print_auth_status(&methods, token.as_deref(), &s, printer);
|
||||
fabro_util::printerr!(printer, "");
|
||||
}
|
||||
InstallServerRestartOutcome::Failed(err) => {
|
||||
fabro_util::printerr!(
|
||||
|
|
@ -1994,10 +2040,22 @@ async fn run_install_inner(
|
|||
InstallServerRestartOutcome::Started(bind) => {
|
||||
fabro_util::printerr!(
|
||||
printer,
|
||||
" {} Server running at {}",
|
||||
" {} Server running at http://{}",
|
||||
s.green.apply_to("✔"),
|
||||
bind
|
||||
);
|
||||
let methods = install_settings
|
||||
.server
|
||||
.as_ref()
|
||||
.and_then(|srv| srv.auth.as_ref())
|
||||
.and_then(|auth| auth.methods.as_ref())
|
||||
.map(Vec::as_slice)
|
||||
.unwrap_or_default();
|
||||
let token = dev_token::read_dev_token_file(
|
||||
&Storage::new(&storage_dir).server_state().dev_token_path(),
|
||||
);
|
||||
print_auth_status(methods, token.as_deref(), &s, printer);
|
||||
fabro_util::printerr!(printer, "");
|
||||
true
|
||||
}
|
||||
InstallServerRestartOutcome::Failed(err) => {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue