tidy: move parse_args to Args::parse
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
204
src/app.rs
204
src/app.rs
@@ -537,116 +537,118 @@ struct Args {
|
|||||||
dbpath: Option<String>,
|
dbpath: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_args(args: &[String]) -> Args {
|
impl Args {
|
||||||
let mut res = Args {
|
fn parse(args: &[String]) -> Self {
|
||||||
timelines: vec![],
|
let mut res = Args {
|
||||||
relays: vec![],
|
timelines: vec![],
|
||||||
is_mobile: None,
|
relays: vec![],
|
||||||
keys: vec![],
|
is_mobile: None,
|
||||||
light: false,
|
keys: vec![],
|
||||||
since_optimize: true,
|
light: false,
|
||||||
dbpath: None,
|
since_optimize: true,
|
||||||
};
|
dbpath: None,
|
||||||
|
};
|
||||||
|
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
let len = args.len();
|
let len = args.len();
|
||||||
while i < len {
|
while i < len {
|
||||||
let arg = &args[i];
|
let arg = &args[i];
|
||||||
|
|
||||||
if arg == "--mobile" {
|
if arg == "--mobile" {
|
||||||
res.is_mobile = Some(true);
|
res.is_mobile = Some(true);
|
||||||
} else if arg == "--light" {
|
} else if arg == "--light" {
|
||||||
res.light = true;
|
res.light = true;
|
||||||
} else if arg == "--dark" {
|
} else if arg == "--dark" {
|
||||||
res.light = false;
|
res.light = false;
|
||||||
} else if arg == "--pub" || arg == "npub" {
|
} else if arg == "--pub" || arg == "npub" {
|
||||||
// TODO: npub watch-only accounts
|
// TODO: npub watch-only accounts
|
||||||
} else if arg == "--sec" || arg == "--nsec" {
|
} else if arg == "--sec" || arg == "--nsec" {
|
||||||
i += 1;
|
i += 1;
|
||||||
let secstr = if let Some(next_arg) = args.get(i) {
|
let secstr = if let Some(next_arg) = args.get(i) {
|
||||||
next_arg
|
next_arg
|
||||||
} else {
|
} else {
|
||||||
error!("sec argument missing?");
|
error!("sec argument missing?");
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Ok(sec) = SecretKey::parse(secstr) {
|
if let Ok(sec) = SecretKey::parse(secstr) {
|
||||||
res.keys.push(Keypair::from_secret(sec));
|
res.keys.push(Keypair::from_secret(sec));
|
||||||
} else {
|
} else {
|
||||||
error!(
|
error!(
|
||||||
"failed to parse {} argument. Make sure to use hex or nsec.",
|
"failed to parse {} argument. Make sure to use hex or nsec.",
|
||||||
arg
|
arg
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
} else if arg == "--no-since-optimize" {
|
||||||
|
res.since_optimize = false;
|
||||||
|
} else if arg == "--filter" {
|
||||||
|
i += 1;
|
||||||
|
let filter = if let Some(next_arg) = args.get(i) {
|
||||||
|
next_arg
|
||||||
|
} else {
|
||||||
|
error!("filter argument missing?");
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
if let Ok(filter) = Filter::from_json(filter) {
|
||||||
|
res.timelines.push(Timeline::new(vec![filter]));
|
||||||
|
} else {
|
||||||
|
error!("failed to parse filter '{}'", filter);
|
||||||
|
}
|
||||||
|
} else if arg == "--dbpath" {
|
||||||
|
i += 1;
|
||||||
|
let path = if let Some(next_arg) = args.get(i) {
|
||||||
|
next_arg
|
||||||
|
} else {
|
||||||
|
error!("dbpath argument missing?");
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
res.dbpath = Some(path.clone());
|
||||||
|
} else if arg == "-r" || arg == "--relay" {
|
||||||
|
i += 1;
|
||||||
|
let relay = if let Some(next_arg) = args.get(i) {
|
||||||
|
next_arg
|
||||||
|
} else {
|
||||||
|
error!("relay argument missing?");
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
res.relays.push(relay.clone());
|
||||||
|
} else if arg == "--filter-file" || arg == "-f" {
|
||||||
|
i += 1;
|
||||||
|
let filter_file = if let Some(next_arg) = args.get(i) {
|
||||||
|
next_arg
|
||||||
|
} else {
|
||||||
|
error!("filter file argument missing?");
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
let data = if let Ok(data) = std::fs::read(filter_file) {
|
||||||
|
data
|
||||||
|
} else {
|
||||||
|
error!("failed to read filter file '{}'", filter_file);
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
if let Some(filter) = std::str::from_utf8(&data)
|
||||||
|
.ok()
|
||||||
|
.and_then(|s| Filter::from_json(s).ok())
|
||||||
|
{
|
||||||
|
res.timelines.push(Timeline::new(vec![filter]));
|
||||||
|
} else {
|
||||||
|
error!("failed to parse filter in '{}'", filter_file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if arg == "--no-since-optimize" {
|
|
||||||
res.since_optimize = false;
|
|
||||||
} else if arg == "--filter" {
|
|
||||||
i += 1;
|
|
||||||
let filter = if let Some(next_arg) = args.get(i) {
|
|
||||||
next_arg
|
|
||||||
} else {
|
|
||||||
error!("filter argument missing?");
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
|
|
||||||
if let Ok(filter) = Filter::from_json(filter) {
|
|
||||||
res.timelines.push(Timeline::new(vec![filter]));
|
|
||||||
} else {
|
|
||||||
error!("failed to parse filter '{}'", filter);
|
|
||||||
}
|
|
||||||
} else if arg == "--dbpath" {
|
|
||||||
i += 1;
|
i += 1;
|
||||||
let path = if let Some(next_arg) = args.get(i) {
|
|
||||||
next_arg
|
|
||||||
} else {
|
|
||||||
error!("dbpath argument missing?");
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
res.dbpath = Some(path.clone());
|
|
||||||
} else if arg == "-r" || arg == "--relay" {
|
|
||||||
i += 1;
|
|
||||||
let relay = if let Some(next_arg) = args.get(i) {
|
|
||||||
next_arg
|
|
||||||
} else {
|
|
||||||
error!("relay argument missing?");
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
res.relays.push(relay.clone());
|
|
||||||
} else if arg == "--filter-file" || arg == "-f" {
|
|
||||||
i += 1;
|
|
||||||
let filter_file = if let Some(next_arg) = args.get(i) {
|
|
||||||
next_arg
|
|
||||||
} else {
|
|
||||||
error!("filter file argument missing?");
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
|
|
||||||
let data = if let Ok(data) = std::fs::read(filter_file) {
|
|
||||||
data
|
|
||||||
} else {
|
|
||||||
error!("failed to read filter file '{}'", filter_file);
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
|
|
||||||
if let Some(filter) = std::str::from_utf8(&data)
|
|
||||||
.ok()
|
|
||||||
.and_then(|s| Filter::from_json(s).ok())
|
|
||||||
{
|
|
||||||
res.timelines.push(Timeline::new(vec![filter]));
|
|
||||||
} else {
|
|
||||||
error!("failed to parse filter in '{}'", filter_file);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
i += 1;
|
if res.timelines.is_empty() {
|
||||||
}
|
let filter = Filter::from_json(include_str!("../queries/timeline.json")).unwrap();
|
||||||
|
res.timelines.push(Timeline::new(vec![filter]));
|
||||||
|
}
|
||||||
|
|
||||||
if res.timelines.is_empty() {
|
res
|
||||||
let filter = Filter::from_json(include_str!("../queries/timeline.json")).unwrap();
|
|
||||||
res.timelines.push(Timeline::new(vec![filter]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
res
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -676,7 +678,7 @@ impl Damus {
|
|||||||
args: Vec<String>,
|
args: Vec<String>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
// arg parsing
|
// arg parsing
|
||||||
let parsed_args = parse_args(&args);
|
let parsed_args = Args::parse(&args);
|
||||||
let is_mobile = parsed_args.is_mobile.unwrap_or(ui::is_compiled_as_mobile());
|
let is_mobile = parsed_args.is_mobile.unwrap_or(ui::is_compiled_as_mobile());
|
||||||
|
|
||||||
setup_cc(cc, is_mobile, parsed_args.light);
|
setup_cc(cc, is_mobile, parsed_args.light);
|
||||||
|
|||||||
Reference in New Issue
Block a user