node: Don't force use of RAD_PASSPHRASE
If it isn't set, prompt the user.
This commit is contained in:
parent
02304875ce
commit
793c085094
|
|
@ -1996,6 +1996,7 @@ dependencies = [
|
||||||
"qcheck-macros",
|
"qcheck-macros",
|
||||||
"radicle",
|
"radicle",
|
||||||
"radicle-crypto",
|
"radicle-crypto",
|
||||||
|
"radicle-term",
|
||||||
"scrypt",
|
"scrypt",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,10 @@ path = "../radicle"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
features = ["sql"]
|
features = ["sql"]
|
||||||
|
|
||||||
|
[dependencies.radicle-term]
|
||||||
|
path = "../radicle-term"
|
||||||
|
version = "0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
radicle = { path = "../radicle", version = "*", features = ["test"] }
|
radicle = { path = "../radicle", version = "*", features = ["test"] }
|
||||||
radicle-crypto = { path = "../radicle-crypto", version = "*", features = ["test", "cyphernet"] }
|
radicle-crypto = { path = "../radicle-crypto", version = "*", features = ["test", "cyphernet"] }
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
use std::{env, net, process};
|
use std::{net, process};
|
||||||
|
|
||||||
use anyhow::anyhow;
|
use anyhow::{anyhow, Context as _};
|
||||||
use anyhow::Context as _;
|
|
||||||
use crossbeam_channel as chan;
|
use crossbeam_channel as chan;
|
||||||
use cyphernet::addr::PeerAddr;
|
use cyphernet::addr::PeerAddr;
|
||||||
use localtime::LocalDuration;
|
use localtime::LocalDuration;
|
||||||
|
|
@ -12,6 +11,7 @@ use radicle_node::prelude::{Address, NodeId};
|
||||||
use radicle_node::service::tracking::Policy;
|
use radicle_node::service::tracking::Policy;
|
||||||
use radicle_node::Runtime;
|
use radicle_node::Runtime;
|
||||||
use radicle_node::{logger, service, signals};
|
use radicle_node::{logger, service, signals};
|
||||||
|
use radicle_term as term;
|
||||||
|
|
||||||
pub const HELP_MSG: &str = r#"
|
pub const HELP_MSG: &str = r#"
|
||||||
Usage
|
Usage
|
||||||
|
|
@ -112,11 +112,15 @@ impl Options {
|
||||||
fn execute() -> anyhow::Result<()> {
|
fn execute() -> anyhow::Result<()> {
|
||||||
logger::init(log::Level::Debug)?;
|
logger::init(log::Level::Debug)?;
|
||||||
|
|
||||||
|
log::info!("Starting node..");
|
||||||
|
|
||||||
let options = Options::from_env()?;
|
let options = Options::from_env()?;
|
||||||
let home = profile::home()?;
|
let home = profile::home()?;
|
||||||
let passphrase = env::var(profile::env::RAD_PASSPHRASE)
|
|
||||||
.context("`RAD_PASSPHRASE` is required to be set for the node to establish connections")?
|
log::info!("Unlocking node keystore..");
|
||||||
.into();
|
|
||||||
|
let passphrase = term::io::passphrase(profile::env::RAD_PASSPHRASE)
|
||||||
|
.context(format!("`{}` must be set", profile::env::RAD_PASSPHRASE))?;
|
||||||
let keystore = Keystore::new(&home.keys());
|
let keystore = Keystore::new(&home.keys());
|
||||||
let signer = MemorySigner::load(&keystore, passphrase)?;
|
let signer = MemorySigner::load(&keystore, passphrase)?;
|
||||||
let config = service::Config {
|
let config = service::Config {
|
||||||
|
|
@ -141,7 +145,11 @@ fn execute() -> anyhow::Result<()> {
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
if let Err(err) = execute() {
|
if let Err(err) = execute() {
|
||||||
log::error!(target: "node", "Fatal: {}", err);
|
if let Some(src) = err.source() {
|
||||||
|
log::error!(target: "node", "Fatal: {err}: {src}");
|
||||||
|
} else {
|
||||||
|
log::error!(target: "node", "Fatal: {err}");
|
||||||
|
}
|
||||||
process::exit(1);
|
process::exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue