aboutsummaryrefslogtreecommitdiffstats
path: root/mumlib/src/config.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-05-25 21:00:18 +0200
committerGitHub <noreply@github.com>2021-05-25 21:00:18 +0200
commitea8b1906e14c3b319d3ad184b6d7cfc507c23b4f (patch)
tree6fb5dd74ab3ca333591778bcf91d45fe988c2cd4 /mumlib/src/config.rs
parent4473bdd1536699c53f27085dd7d4d5d14dd93508 (diff)
parenta5a7a524981005c63931b62567ffca355965b2ba (diff)
downloadmum-ea8b1906e14c3b319d3ad184b6d7cfc507c23b4f.tar.gz
Merge pull request #85 from mum-rs/config-paths
remove cfg_exists, pass paths explicitly
Diffstat (limited to 'mumlib/src/config.rs')
-rw-r--r--mumlib/src/config.rs29
1 files changed, 4 insertions, 25 deletions
diff --git a/mumlib/src/config.rs b/mumlib/src/config.rs
index 9394b85..587d8d0 100644
--- a/mumlib/src/config.rs
+++ b/mumlib/src/config.rs
@@ -23,9 +23,7 @@ pub struct Config {
}
impl Config {
- pub fn write_default_cfg(&self, create: bool) -> Result<(), ConfigError> {
- let path = default_cfg_path();
-
+ pub fn write(&self, path: &Path, create: bool) -> Result<(), ConfigError> {
// Possible race here. It's fine since it shows when:
// 1) the file doesn't exist when checked and is then created
// 2) the file exists when checked but is then removed
@@ -40,7 +38,7 @@ impl Config {
}
Ok(fs::write(
- &path,
+ path,
toml::to_string(&TOMLConfig::from(self.clone()))?,
)?)
}
@@ -91,24 +89,6 @@ pub fn default_cfg_path() -> PathBuf {
}
}
-pub fn cfg_exists() -> bool {
- if let Ok(var) = std::env::var("XDG_CONFIG_HOME") {
- let path = format!("{}/mumdrc", var);
- if Path::new(&path).exists() {
- return true;
- }
- } else if let Ok(var) = std::env::var("HOME") {
- let path = format!("{}/.config/mumdrc", var);
- if Path::new(&path).exists() {
- return true;
- }
- } else if Path::new("/etc/mumdrc").exists() {
- return true;
- }
-
- false
-}
-
impl TryFrom<TOMLConfig> for Config {
type Error = toml::de::Error;
@@ -149,9 +129,8 @@ impl From<Config> for TOMLConfig {
}
}
-pub fn read_default_cfg() -> Result<Config, ConfigError> {
- let path = default_cfg_path();
- match fs::read_to_string(&path) {
+pub fn read_cfg(path: &Path) -> Result<Config, ConfigError> {
+ match fs::read_to_string(path) {
Ok(s) => {
let toml_config: TOMLConfig = toml::from_str(&s)?;
Ok(Config::try_from(toml_config)?)