|
@@ -67,7 +67,7 @@ pub mod send_transaction_config;
|
|
|
pub struct RunArgs {
|
|
pub struct RunArgs {
|
|
|
pub identity_keypair: Keypair,
|
|
pub identity_keypair: Keypair,
|
|
|
pub ledger_path: PathBuf,
|
|
pub ledger_path: PathBuf,
|
|
|
- pub logfile: String,
|
|
|
|
|
|
|
+ pub logfile: Option<PathBuf>,
|
|
|
pub entrypoints: Vec<SocketAddr>,
|
|
pub entrypoints: Vec<SocketAddr>,
|
|
|
pub known_validators: Option<HashSet<Pubkey>>,
|
|
pub known_validators: Option<HashSet<Pubkey>>,
|
|
|
pub socket_addr_space: SocketAddrSpace,
|
|
pub socket_addr_space: SocketAddrSpace,
|
|
@@ -103,8 +103,13 @@ impl FromClapArgMatches for RunArgs {
|
|
|
|
|
|
|
|
let logfile = matches
|
|
let logfile = matches
|
|
|
.value_of("logfile")
|
|
.value_of("logfile")
|
|
|
- .map(|s| s.into())
|
|
|
|
|
|
|
+ .map(String::from)
|
|
|
.unwrap_or_else(|| format!("agave-validator-{}.log", identity_keypair.pubkey()));
|
|
.unwrap_or_else(|| format!("agave-validator-{}.log", identity_keypair.pubkey()));
|
|
|
|
|
+ let logfile = if logfile == "-" {
|
|
|
|
|
+ None
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Some(PathBuf::from(logfile))
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
let mut entrypoints = values_t!(matches, "entrypoint", String).unwrap_or_default();
|
|
let mut entrypoints = values_t!(matches, "entrypoint", String).unwrap_or_default();
|
|
|
// sort() + dedup() to yield a vector of unique elements
|
|
// sort() + dedup() to yield a vector of unique elements
|
|
@@ -1419,7 +1424,8 @@ mod tests {
|
|
|
fn default() -> Self {
|
|
fn default() -> Self {
|
|
|
let identity_keypair = Keypair::new();
|
|
let identity_keypair = Keypair::new();
|
|
|
let ledger_path = absolute(PathBuf::from("ledger")).unwrap();
|
|
let ledger_path = absolute(PathBuf::from("ledger")).unwrap();
|
|
|
- let logfile = format!("agave-validator-{}.log", identity_keypair.pubkey());
|
|
|
|
|
|
|
+ let logfile =
|
|
|
|
|
+ PathBuf::from(format!("agave-validator-{}.log", identity_keypair.pubkey()));
|
|
|
let entrypoints = vec![];
|
|
let entrypoints = vec![];
|
|
|
let known_validators = None;
|
|
let known_validators = None;
|
|
|
|
|
|
|
@@ -1429,7 +1435,7 @@ mod tests {
|
|
|
RunArgs {
|
|
RunArgs {
|
|
|
identity_keypair,
|
|
identity_keypair,
|
|
|
ledger_path,
|
|
ledger_path,
|
|
|
- logfile,
|
|
|
|
|
|
|
+ logfile: Some(logfile),
|
|
|
entrypoints,
|
|
entrypoints,
|
|
|
known_validators,
|
|
known_validators,
|
|
|
socket_addr_space: SocketAddrSpace::Global,
|
|
socket_addr_space: SocketAddrSpace::Global,
|
|
@@ -1652,9 +1658,10 @@ mod tests {
|
|
|
// default
|
|
// default
|
|
|
{
|
|
{
|
|
|
let expected_args = RunArgs {
|
|
let expected_args = RunArgs {
|
|
|
- logfile: "agave-validator-".to_string()
|
|
|
|
|
- + &default_run_args.identity_keypair.pubkey().to_string()
|
|
|
|
|
- + ".log",
|
|
|
|
|
|
|
+ logfile: Some(PathBuf::from(format!(
|
|
|
|
|
+ "agave-validator-{}.log",
|
|
|
|
|
+ default_run_args.identity_keypair.pubkey()
|
|
|
|
|
+ ))),
|
|
|
..default_run_args.clone()
|
|
..default_run_args.clone()
|
|
|
};
|
|
};
|
|
|
verify_args_struct_by_command_run_with_identity_setup(
|
|
verify_args_struct_by_command_run_with_identity_setup(
|
|
@@ -1667,7 +1674,7 @@ mod tests {
|
|
|
// short arg
|
|
// short arg
|
|
|
{
|
|
{
|
|
|
let expected_args = RunArgs {
|
|
let expected_args = RunArgs {
|
|
|
- logfile: "-".to_string(),
|
|
|
|
|
|
|
+ logfile: None,
|
|
|
..default_run_args.clone()
|
|
..default_run_args.clone()
|
|
|
};
|
|
};
|
|
|
verify_args_struct_by_command_run_with_identity_setup(
|
|
verify_args_struct_by_command_run_with_identity_setup(
|
|
@@ -1680,7 +1687,7 @@ mod tests {
|
|
|
// long arg
|
|
// long arg
|
|
|
{
|
|
{
|
|
|
let expected_args = RunArgs {
|
|
let expected_args = RunArgs {
|
|
|
- logfile: "custom_log.log".to_string(),
|
|
|
|
|
|
|
+ logfile: Some(PathBuf::from("custom_log.log")),
|
|
|
..default_run_args.clone()
|
|
..default_run_args.clone()
|
|
|
};
|
|
};
|
|
|
verify_args_struct_by_command_run_with_identity_setup(
|
|
verify_args_struct_by_command_run_with_identity_setup(
|