node: Delegate passphrase prompt to CLI
Instead of asking for the passphrase in `radicle-node`, we expect the `RAD_PASSPHRASE` env var to be set. This keeps `radicle-node` simpler and lower level, while the passphrase prompt is still available via `rad node start`.
This commit is contained in:
parent
4634913b66
commit
16a01a42bf
|
|
@ -2113,7 +2113,6 @@ dependencies = [
|
||||||
"radicle",
|
"radicle",
|
||||||
"radicle-crypto",
|
"radicle-crypto",
|
||||||
"radicle-git-ext",
|
"radicle-git-ext",
|
||||||
"radicle-term",
|
|
||||||
"scrypt",
|
"scrypt",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
|
|
||||||
|
|
@ -42,10 +42,6 @@ thiserror = { version = "1" }
|
||||||
path = "../radicle"
|
path = "../radicle"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
|
||||||
[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,10 +1,11 @@
|
||||||
use std::{fs, net, process};
|
use std::{env, fs, net, process};
|
||||||
|
|
||||||
use anyhow::{anyhow, Context as _};
|
use anyhow::{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;
|
||||||
|
|
||||||
|
use radicle::crypto;
|
||||||
use radicle::node;
|
use radicle::node;
|
||||||
use radicle::prelude::Signer;
|
use radicle::prelude::Signer;
|
||||||
use radicle::profile;
|
use radicle::profile;
|
||||||
|
|
@ -12,7 +13,6 @@ use radicle_node::crypto::ssh::keystore::{Keystore, MemorySigner};
|
||||||
use radicle_node::prelude::{Address, NodeId};
|
use radicle_node::prelude::{Address, NodeId};
|
||||||
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
|
||||||
|
|
@ -126,7 +126,8 @@ fn execute() -> anyhow::Result<()> {
|
||||||
|
|
||||||
log::info!(target: "node", "Unlocking node keystore..");
|
log::info!(target: "node", "Unlocking node keystore..");
|
||||||
|
|
||||||
let passphrase = term::io::passphrase(profile::env::RAD_PASSPHRASE)
|
let passphrase = env::var(profile::env::RAD_PASSPHRASE)
|
||||||
|
.map(crypto::ssh::Passphrase::from)
|
||||||
.context(format!("`{}` must be set", 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)?;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue