Skip to content

Commit

Permalink
slightly rework approach with namespace parameter in CLI and introduc…
Browse files Browse the repository at this point in the history
…e --db-name optional argument
  • Loading branch information
sivukhin committed Aug 26, 2024
1 parent b89e28c commit 84c2fa1
Showing 1 changed file with 31 additions and 3 deletions.
34 changes: 31 additions & 3 deletions bottomless-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ struct Cli {
namespace: Option<String>,
#[clap(long)]
encryption_key: Option<Bytes>,
#[clap(long)]
db_name: Option<String>,
}

#[derive(Debug, Subcommand)]
Expand Down Expand Up @@ -231,9 +233,35 @@ async fn run() -> Result<()> {
std::str::from_utf8(encryption_key)?,
);
}
let namespace = options.namespace.as_deref().unwrap_or("ns-default");
std::env::set_var("LIBSQL_BOTTOMLESS_DATABASE_ID", namespace);

let namespace_init = std::env::var("LIBSQL_BOTTOMLESS_DATABASE_ID").unwrap_or(String::new());
if options.db_name.is_some() && options.namespace.is_some() {
return Err(anyhow!(
"only one of the arguments --db-name or --namespace is expected to be set"
));
}
if let Some(ref db_name) = options.db_name {
if namespace_init != "" {
std::env::set_var(
"LIBSQL_BOTTOMLESS_DATABASE_ID",
format!("ns-{}:{}", &namespace_init, db_name),
);
} else {
return Err(anyhow!(
"db_name can be set only if LIBSQL_BOTTOMLESS_DATABASE_ID env var has namespace ID"
));
}
} else {
let namespace = options.namespace.as_deref().unwrap_or("ns-default");
std::env::set_var("LIBSQL_BOTTOMLESS_DATABASE_ID", namespace);
}
let namespace = std::env::var("LIBSQL_BOTTOMLESS_DATABASE_ID").unwrap();
if namespace_init != namespace {
tracing::info!(
"LIBSQL_BOTTOMLESS_DATABASE_ID env var were updated: '{}' -> '{}'",
namespace_init,
namespace
);
}
match options.command {
Commands::Create { ref source_db_path } => {
let mut client =
Expand Down

0 comments on commit 84c2fa1

Please sign in to comment.