feat: add multi-account ability

This commit is contained in:
VC
2022-11-03 16:14:25 +01:00
parent 44ec3edfe2
commit dad49da090
11 changed files with 341 additions and 163 deletions

View File

@@ -43,7 +43,16 @@ fn main() {
.help("Base URL of the Mastodon instance to register to (no default)")
.takes_value(true)
.required(true)
.display_order(1),
.display_order(1)
)
.arg(
Arg::with_name("name")
.short("n")
.long("name")
.help("Twitter Screen Name (like https://twitter.com/screen_name, no default)")
.takes_value(true)
.required(true)
.display_order(2)
),
)
.subcommand(
@@ -63,11 +72,36 @@ fn main() {
.display_order(1),
),
)
.subcommand(
SubCommand::with_name("migrate")
.version(env!("CARGO_PKG_VERSION"))
.about("Command to migrate Scootaloo DB")
.arg(
Arg::with_name("config")
.short("c")
.long("config")
.value_name("CONFIG_FILE")
.help(&format!("TOML config file for scootaloo (default {})", DEFAULT_CONFIG_PATH))
.takes_value(true)
.display_order(1),
)
.arg(
Arg::with_name("name")
.short("n")
.long("name")
.help("Twitter Screen Name (like https://twitter.com/screen_name, no default)")
.takes_value(true)
.display_order(2)
)
)
.get_matches();
match matches.subcommand() {
("register", Some(sub_m)) => {
register(sub_m.value_of("host").unwrap());
register(
sub_m.value_of("host").unwrap(),
sub_m.value_of("name").unwrap(),
);
return;
}
("init", Some(sub_m)) => {
@@ -75,6 +109,17 @@ fn main() {
init_db(&config.scootaloo.db_path).unwrap();
return;
}
("migrate", Some(sub_m)) => {
let config = parse_toml(sub_m.value_of("config").unwrap_or(DEFAULT_CONFIG_PATH));
let config_twitter_screen_name =
&config.mastodon.values().next().unwrap().twitter_screen_name;
migrate_db(
&config.scootaloo.db_path,
sub_m.value_of("name").unwrap_or(config_twitter_screen_name),
)
.unwrap();
return;
}
_ => (),
}