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:
Alexis Sellier 2023-07-15 12:44:14 +02:00
parent 4634913b66
commit 16a01a42bf
No known key found for this signature in database
3 changed files with 4 additions and 8 deletions

1
Cargo.lock generated
View File

@ -2113,7 +2113,6 @@ dependencies = [
"radicle",
"radicle-crypto",
"radicle-git-ext",
"radicle-term",
"scrypt",
"serde",
"serde_json",

View File

@ -42,10 +42,6 @@ thiserror = { version = "1" }
path = "../radicle"
version = "0.2.0"
[dependencies.radicle-term]
path = "../radicle-term"
version = "0"
[dev-dependencies]
radicle = { path = "../radicle", version = "*", features = ["test"] }
radicle-crypto = { path = "../radicle-crypto", version = "*", features = ["test", "cyphernet"] }

View File

@ -1,10 +1,11 @@
use std::{fs, net, process};
use std::{env, fs, net, process};
use anyhow::{anyhow, Context as _};
use crossbeam_channel as chan;
use cyphernet::addr::PeerAddr;
use localtime::LocalDuration;
use radicle::crypto;
use radicle::node;
use radicle::prelude::Signer;
use radicle::profile;
@ -12,7 +13,6 @@ use radicle_node::crypto::ssh::keystore::{Keystore, MemorySigner};
use radicle_node::prelude::{Address, NodeId};
use radicle_node::Runtime;
use radicle_node::{logger, service, signals};
use radicle_term as term;
pub const HELP_MSG: &str = r#"
Usage
@ -126,7 +126,8 @@ fn execute() -> anyhow::Result<()> {
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))?;
let keystore = Keystore::new(&home.keys());
let signer = MemorySigner::load(&keystore, passphrase)?;