From 16a01a42bfad7328ac84cffd5c2707f774c9f3ff Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Sat, 15 Jul 2023 12:44:14 +0200 Subject: [PATCH] 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`. --- Cargo.lock | 1 - radicle-node/Cargo.toml | 4 ---- radicle-node/src/main.rs | 7 ++++--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 096e851c..fdae8930 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2113,7 +2113,6 @@ dependencies = [ "radicle", "radicle-crypto", "radicle-git-ext", - "radicle-term", "scrypt", "serde", "serde_json", diff --git a/radicle-node/Cargo.toml b/radicle-node/Cargo.toml index 9dd6d66b..4622a703 100644 --- a/radicle-node/Cargo.toml +++ b/radicle-node/Cargo.toml @@ -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"] } diff --git a/radicle-node/src/main.rs b/radicle-node/src/main.rs index 16cb8689..d10db8ac 100644 --- a/radicle-node/src/main.rs +++ b/radicle-node/src/main.rs @@ -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)?;