fix: ensure dirs exist

Ensure ~/.config/wldash and ~/.cache/wldash exist.
Provide hints when no configuration exists.

Signed-off-by: Alejandro Visiedo <alejandro.visiedo@gmail.com>
This commit is contained in:
Alejandro Visiedo
2025-05-08 12:59:41 +02:00
committed by Kenny Levinsen
parent d80a64444f
commit 1156b3503a
+19 -1
View File
@@ -32,6 +32,8 @@ use widgets::{Geometry, Widget};
use std::{
env,
fs::File,
fs,
path::Path,
io::{BufRead, BufReader, Write},
os::unix::net::{UnixListener, UnixStream},
rc::Rc,
@@ -53,11 +55,27 @@ OPTIONS:
);
}
fn ensure_dir_exists(path: &str) {
match fs::create_dir_all(path) {
Ok(_) => (),
Err(err) => panic!("error creating directory: {}", err),
}
}
fn create_required_directories() {
let dir_config_wldash = format!("{}/wldash", xdg::config_folder());
let dir_cache_wldash = format!("{}/wldash", xdg::cache_folder());
ensure_dir_exists(&dir_config_wldash);
ensure_dir_exists(&dir_cache_wldash);
}
fn main() {
let mut args = env::args();
// Skip program name
_ = args.next();
create_required_directories();
let mut config_file = format!("{}/wldash/config.yml", xdg::config_folder());
loop {
@@ -175,7 +193,7 @@ fn main() {
let config: Config = match File::open(config_file) {
Ok(f) => serde_yaml::from_reader(f).unwrap(),
Err(_) => panic!("configuration file missing"),
Err(_) => panic!("configuration file missing: try 'wldash --write-default-config'"),
};
if let Some(true) = config.server {