imgurs/src/main.rs

45 lines
1.1 KiB
Rust
Raw Normal View History

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
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};
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| {
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");
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;
}