mirror of
https://framagit.org/veretcle/scootaloo.git
synced 2025-07-21 17:34:37 +02:00
feat: add copyprofile subcommand
This commit is contained in:
61
src/main.rs
61
src/main.rs
@@ -1,4 +1,4 @@
|
||||
use clap::{Arg, Command};
|
||||
use clap::{Arg, ArgAction, Command};
|
||||
use log::LevelFilter;
|
||||
use scootaloo::*;
|
||||
use simple_logger::SimpleLogger;
|
||||
@@ -87,12 +87,43 @@ fn main() {
|
||||
.display_order(1),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("name")
|
||||
.short('n')
|
||||
.long("name")
|
||||
.help("Twitter Screen Name (like https://twitter.com/screen_name, no default)")
|
||||
.num_args(1)
|
||||
.display_order(2)
|
||||
Arg::new("name")
|
||||
.short('n')
|
||||
.long("name")
|
||||
.help("Twitter Screen Name (like https://twitter.com/screen_name, no default)")
|
||||
.num_args(1)
|
||||
.display_order(2)
|
||||
)
|
||||
)
|
||||
.subcommand(
|
||||
Command::new("copyprofile")
|
||||
.version(env!("CARGO_PKG_VERSION"))
|
||||
.about("Command to copy a Twitter profile into Mastodon")
|
||||
.arg(
|
||||
Arg::new("config")
|
||||
.short('c')
|
||||
.long("config")
|
||||
.value_name("CONFIG_FILE")
|
||||
.help(&format!("TOML config file for scootaloo (default {})", DEFAULT_CONFIG_PATH))
|
||||
.default_value(DEFAULT_CONFIG_PATH)
|
||||
.num_args(1)
|
||||
.display_order(1),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("name")
|
||||
.short('n')
|
||||
.long("name")
|
||||
.help("Mastodon Config name (as seen in the config file)")
|
||||
.num_args(1)
|
||||
.display_order(2)
|
||||
)
|
||||
.arg(
|
||||
Arg::new("bot")
|
||||
.short('b')
|
||||
.long("bot")
|
||||
.help("Declare user as bot")
|
||||
.action(ArgAction::SetTrue)
|
||||
.display_order(3)
|
||||
)
|
||||
)
|
||||
.get_matches();
|
||||
@@ -123,6 +154,22 @@ fn main() {
|
||||
.unwrap();
|
||||
return;
|
||||
}
|
||||
Some(("copyprofile", sub_m)) => {
|
||||
let mut config = parse_toml(sub_m.get_one::<String>("config").unwrap());
|
||||
// filters out the user passed in cli from the global configuration
|
||||
if let Some(m) = sub_m.get_one::<String>("name") {
|
||||
match config.mastodon.get(m) {
|
||||
Some(_) => {
|
||||
config.mastodon.retain(|k, _| k == m);
|
||||
}
|
||||
None => panic!("Config file does not contain conf for {}", &m),
|
||||
}
|
||||
}
|
||||
|
||||
profile(config, sub_m.get_flag("bot").then_some(true));
|
||||
|
||||
return;
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user