Add Default config generation

This commit is contained in:
Samuel Lorch 2023-10-26 00:27:28 +02:00
parent cadfd8cca9
commit acfa0cc83a
2 changed files with 24 additions and 0 deletions

View file

@ -109,3 +109,16 @@ fn write_config_to_file(path: &str, conf: Config) -> Result<(), ConfigError> {
fs::write(path, data)?;
Ok(())
}
pub fn generate_default_config(path: &str) -> Result<(), ConfigError> {
let mut conf = Config::default();
conf.system.users.insert(
"admin".to_string(),
crate::definitions::system::User {
comment: "Default Admin".to_string(),
hash: "".to_string(),
salt: "".to_string(),
},
);
write_config_to_file(path, conf)
}

View file

@ -8,6 +8,7 @@ use std::{
use axum::{middleware, Router};
use config_manager::ConfigManager;
use state::AppState;
use std::env;
use tower_cookies::CookieManagerLayer;
use tracing::info;
use tracing_subscriber;
@ -23,6 +24,16 @@ async fn main() {
tracing_subscriber::fmt::init();
info!("Starting...");
let args: Vec<String> = env::args().collect();
if args.len() > 1 && args[1] == "generate-default" {
info!("Generating default config...");
config_manager::generate_default_config(config_manager::CURRENT_CONFIG_PATH).unwrap();
config_manager::generate_default_config(config_manager::PENDING_CONFIG_PATH).unwrap();
info!("Done! Exiting...");
return;
}
// TODO Check Config Manager Setup Error
let config_manager = ConfigManager::new().unwrap();