Merge pull request #29 from yeastplume/output_address

Add option to output public address
This commit is contained in:
Yeastplume 2024-08-12 14:25:09 +01:00 committed by GitHub
commit e66a3b9bbe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 1 deletions

View file

@ -116,6 +116,28 @@ fn real_main() -> Result<(), Box<dyn std::error::Error>> {
let password = prompt_password();
let mut server_config = config::load_config(&config_path, &password)?;
// Write a new config file if init-config command is supplied
if let ("address", Some(_)) = args.subcommand() {
if !config_path.exists() {
panic!(
"No public address configured (Config file not found). {}",
config_path.to_string_lossy()
);
}
let sub_args = args.subcommand_matches("address").unwrap();
if sub_args.is_present("output_file")
{
//output onion address to file
let output_file = sub_args.value_of("output_file").unwrap();
let onion_address = server_config.onion_address();
std::fs::write(output_file, format!("{}", onion_address))?;
println!("Onion address written to file: {}", output_file);
} else {
println!("{}", server_config.onion_address());
}
return Ok(())
}
// Override grin_node_url, if supplied
if let Some(grin_node_url) = grin_node_url {
server_config.grin_node_url = grin_node_url.parse()?;

View file

@ -49,3 +49,12 @@ args:
subcommands:
- init-config:
about: Writes a new configuration file
- address:
about: Outputs the public key of the server
args:
- output_file:
help: Path to output the public key to
long: output_file
short: o
takes_value: true
required: false