mirror of
https://framagit.org/veretcle/scootaloo.git
synced 2025-07-21 09:31:19 +02:00
64 lines
2.6 KiB
Rust
64 lines
2.6 KiB
Rust
// self
|
||
use scootaloo::*;
|
||
|
||
// clap
|
||
use clap::{App, Arg, SubCommand};
|
||
|
||
// log
|
||
use log::{LevelFilter, error};
|
||
use simple_logger::SimpleLogger;
|
||
|
||
// std
|
||
use std::str::FromStr;
|
||
|
||
fn main() {
|
||
let matches = App::new(env!("CARGO_PKG_NAME"))
|
||
.version(env!("CARGO_PKG_VERSION"))
|
||
.about("A Twitter to Mastodon bot")
|
||
.arg(Arg::with_name("config")
|
||
.short("c")
|
||
.long("config")
|
||
.value_name("CONFIG_FILE")
|
||
.help("TOML config file for scootaloo (default /usr/local/etc/scootaloo.toml)")
|
||
.takes_value(true)
|
||
.display_order(1))
|
||
.arg(Arg::with_name("log_level")
|
||
.short("l")
|
||
.long("loglevel")
|
||
.value_name("LOGLEVEL")
|
||
.help("Log level. Valid values are: Off, Warn, Error, Info, Debug")
|
||
.takes_value(true)
|
||
.display_order(2))
|
||
.subcommand(SubCommand::with_name("register")
|
||
.version(env!("CARGO_PKG_VERSION"))
|
||
.about("Command to register to a Mastodon Instance")
|
||
.arg(Arg::with_name("host")
|
||
.short("H")
|
||
.long("host")
|
||
.value_name("HOST")
|
||
.help("Base URL of the Mastodon instance to register to (no default)")
|
||
.takes_value(true)
|
||
.required(true)
|
||
.display_order(1)))
|
||
.get_matches();
|
||
if let Some(matches) = matches.subcommand_matches("register") {
|
||
register(matches.value_of("host").unwrap());
|
||
return;
|
||
}
|
||
|
||
if matches.is_present("log_level") {
|
||
match LevelFilter::from_str(matches.value_of("log_level").unwrap()) {
|
||
Ok(level) => { SimpleLogger::new().with_level(level).init().unwrap()},
|
||
Err(e) => {
|
||
SimpleLogger::new().with_level(LevelFilter::Error).init().unwrap();
|
||
error!("Unknown log level filter: {}", e);
|
||
}
|
||
};
|
||
}
|
||
|
||
let config = parse_toml(matches.value_of("config").unwrap_or("/usr/local/etc/scootaloo.toml"));
|
||
|
||
run(config);
|
||
}
|
||
|