node: Some small UX fixes
Fixes an error which said "invalid argument" the first time the node was started.
This commit is contained in:
parent
62aaec5f53
commit
693f0a2c44
|
|
@ -81,14 +81,14 @@ pub fn logs(lines: usize, follow: Option<time::Duration>, profile: &Profile) ->
|
|||
let logs = profile.home.node().join("node.log");
|
||||
|
||||
let mut file = BufReader::new(File::open(logs)?);
|
||||
file.seek(SeekFrom::End(-1))?;
|
||||
file.seek(SeekFrom::End(0))?;
|
||||
|
||||
let mut tail = Vec::new();
|
||||
let mut nlines = 0;
|
||||
|
||||
for i in (0..=file.stream_position()?).rev() {
|
||||
for i in (1..=file.stream_position()?).rev() {
|
||||
let mut buf = [0; 1];
|
||||
file.seek(SeekFrom::Start(i))?;
|
||||
file.seek(SeekFrom::Start(i - 1))?;
|
||||
file.read_exact(&mut buf)?;
|
||||
|
||||
if buf[0] == b'\n' {
|
||||
|
|
|
|||
|
|
@ -153,6 +153,8 @@ pub enum MemorySignerError {
|
|||
Keystore(#[from] Error),
|
||||
#[error("key not found in '{0}'")]
|
||||
NotFound(PathBuf),
|
||||
#[error("invalid passphrase")]
|
||||
InvalidPassphrase,
|
||||
}
|
||||
|
||||
/// An in-memory signer that keeps its secret key internally
|
||||
|
|
@ -217,7 +219,14 @@ impl MemorySigner {
|
|||
.public_key()?
|
||||
.ok_or_else(|| MemorySignerError::NotFound(keystore.path().to_path_buf()))?;
|
||||
let secret = keystore
|
||||
.secret_key(passphrase)?
|
||||
.secret_key(passphrase)
|
||||
.map_err(|e| {
|
||||
if e.is_crypto_err() {
|
||||
MemorySignerError::InvalidPassphrase
|
||||
} else {
|
||||
e.into()
|
||||
}
|
||||
})?
|
||||
.ok_or_else(|| MemorySignerError::NotFound(keystore.path().to_path_buf()))?;
|
||||
|
||||
Ok(Self { public, secret })
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::io;
|
||||
use std::{env, fs, net, process};
|
||||
|
||||
use anyhow::anyhow;
|
||||
use anyhow::{anyhow, Context};
|
||||
use crossbeam_channel as chan;
|
||||
use cyphernet::addr::PeerAddr;
|
||||
use localtime::LocalDuration;
|
||||
|
|
@ -142,7 +142,7 @@ fn execute() -> anyhow::Result<()> {
|
|||
|
||||
let passphrase = profile::env::passphrase();
|
||||
let keystore = Keystore::new(&home.keys());
|
||||
let signer = MemorySigner::load(&keystore, passphrase)?;
|
||||
let signer = MemorySigner::load(&keystore, passphrase).context("couldn't load secret key")?;
|
||||
|
||||
log::info!(target: "node", "Node ID is {}", signer.public_key());
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue