2022-01-22 21:02:51 +00:00
|
|
|
mod cli;
|
2022-01-22 21:14:26 +00:00
|
|
|
mod config;
|
2022-01-22 21:02:51 +00:00
|
|
|
|
2022-01-22 22:10:11 +00:00
|
|
|
use cli::parse::parse;
|
2022-01-22 21:02:51 +00:00
|
|
|
|
2022-01-24 18:33:44 +00:00
|
|
|
use dirs::config_dir;
|
|
|
|
use log::warn;
|
2022-01-22 21:02:51 +00:00
|
|
|
use simple_logger::SimpleLogger;
|
2022-01-24 18:37:50 +00:00
|
|
|
use std::{fs::create_dir_all, path::Path};
|
2022-01-24 18:33:44 +00:00
|
|
|
|
|
|
|
use std::fs::File;
|
|
|
|
use std::io::Write as _;
|
2022-01-22 21:02:51 +00:00
|
|
|
|
2022-01-22 22:10:11 +00:00
|
|
|
use imgurs::api::ImgurHandle;
|
2022-01-22 21:02:51 +00:00
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() {
|
|
|
|
SimpleLogger::new().init().unwrap();
|
|
|
|
|
2022-01-23 12:05:32 +00:00
|
|
|
let config = config::toml::parse().unwrap_or_else(|error| {
|
2022-01-24 18:33:44 +00:00
|
|
|
warn!("Parse toml config: {}! Creating config file...", error);
|
|
|
|
|
|
|
|
let default_config = include_str!(concat!("../config.toml"));
|
|
|
|
|
|
|
|
let sys_config_dir = config_dir().unwrap();
|
|
|
|
let config_dir = format!("{}/imgurs/config.toml", sys_config_dir.to_string_lossy());
|
|
|
|
let config_path = Path::new(&config_dir);
|
|
|
|
|
|
|
|
let prefix = config_path.parent().unwrap();
|
|
|
|
create_dir_all(prefix).unwrap();
|
|
|
|
|
|
|
|
let mut file_ref = File::create(config_path).expect("create failed");
|
|
|
|
|
2022-01-24 18:37:50 +00:00
|
|
|
file_ref
|
|
|
|
.write_all(default_config.as_bytes())
|
|
|
|
.expect("failed write default config to file");
|
2022-01-24 18:33:44 +00:00
|
|
|
|
|
|
|
config::toml::parse().unwrap()
|
2022-01-23 12:05:32 +00:00
|
|
|
});
|
2022-01-22 21:02:51 +00:00
|
|
|
|
|
|
|
let client = ImgurHandle::new((&config.imgur.id).to_string());
|
|
|
|
|
|
|
|
parse(client).await;
|
|
|
|
}
|