fix: automatically create configuration and data directories if they don't exist (#204)

I've noticed that the latest release (0.85.0) failed to start up if
`$HOME/.config/television` doesnt exist. This should force the directory
creation if the user doesn't have it.

Before:

![image](https://github.com/user-attachments/assets/d54245f7-e9b7-4baf-87d9-75869821e519)

After:

![image](https://github.com/user-attachments/assets/e0af2a16-987f-4943-85e7-59d427f64abb)

---------

Co-authored-by: Alexandre Pasmantier <alex.pasmant@gmail.com>
This commit is contained in:
Tulip Blossom 2025-01-01 08:05:20 -03:00 committed by GitHub
parent 314aa93a45
commit 741ce30b08
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -83,6 +83,11 @@ impl Config {
// initialize the config builder // initialize the config builder
let data_dir = get_data_dir(); let data_dir = get_data_dir();
let config_dir = get_config_dir(); let config_dir = get_config_dir();
std::fs::create_dir_all(&config_dir)
.expect("Failed creating configuration directory");
std::fs::create_dir_all(&data_dir)
.expect("Failed creating data directory");
let mut builder = config::Config::builder() let mut builder = config::Config::builder()
.set_default("data_dir", data_dir.to_str().unwrap())? .set_default("data_dir", data_dir.to_str().unwrap())?
.set_default("config_dir", config_dir.to_str().unwrap())? .set_default("config_dir", config_dir.to_str().unwrap())?