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:
committed by
Kenny Levinsen
parent
d80a64444f
commit
1156b3503a
+19
-1
@@ -32,6 +32,8 @@ use widgets::{Geometry, Widget};
|
|||||||
use std::{
|
use std::{
|
||||||
env,
|
env,
|
||||||
fs::File,
|
fs::File,
|
||||||
|
fs,
|
||||||
|
path::Path,
|
||||||
io::{BufRead, BufReader, Write},
|
io::{BufRead, BufReader, Write},
|
||||||
os::unix::net::{UnixListener, UnixStream},
|
os::unix::net::{UnixListener, UnixStream},
|
||||||
rc::Rc,
|
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() {
|
fn main() {
|
||||||
let mut args = env::args();
|
let mut args = env::args();
|
||||||
// Skip program name
|
// Skip program name
|
||||||
_ = args.next();
|
_ = args.next();
|
||||||
|
|
||||||
|
create_required_directories();
|
||||||
|
|
||||||
let mut config_file = format!("{}/wldash/config.yml", xdg::config_folder());
|
let mut config_file = format!("{}/wldash/config.yml", xdg::config_folder());
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
@@ -175,7 +193,7 @@ fn main() {
|
|||||||
|
|
||||||
let config: Config = match File::open(config_file) {
|
let config: Config = match File::open(config_file) {
|
||||||
Ok(f) => serde_yaml::from_reader(f).unwrap(),
|
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 {
|
if let Some(true) = config.server {
|
||||||
|
|||||||
Reference in New Issue
Block a user