Radish alpha
r
rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE
Radicle CI adapter for native CI
Radicle
Git
refactor: move configuration file loading into Config impl
Lars Wirzenius committed 2 years ago
commit 54c397992ec346a4cabd2b7002ab69e8c59489f3
parent badc07c
1 file changed +11 -4
modified src/main.rs
@@ -49,10 +49,8 @@ fn fallible_main() -> Result<(), NativeError> {
    pretty_env_logger::init_custom_env("RADICLE_NATIVE_CI_LOG");
    info!("radicle-native-ci starts");

-
    const ENV: &str = "RADICLE_NATIVE_CI";
-
    let config = std::env::var(ENV).map_err(|e| NativeError::GetEnv(ENV, e))?;
-
    let config = Config::read(Path::new(&config))?;
-
    debug!("read config: {:#?}", config);
+
    let config = Config::load_via_env()?;
+

    let state = &config.state;
    if !state.exists() {
        debug!("creating {}", state.display());
@@ -203,6 +201,15 @@ struct Config {
}

impl Config {
+
    fn load_via_env() -> Result<Self, NativeError> {
+
        const ENV: &str = "RADICLE_NATIVE_CI";
+
        let filename = std::env::var(ENV).map_err(|e| NativeError::GetEnv(ENV, e))?;
+
        let filename = Path::new(&filename);
+
        let config = Config::read(filename)?;
+
        debug!("configuration from {}: {:#?}", filename.display(), config);
+
        Ok(config)
+
    }
+

    /// Read configuration specification from a file.
    fn read(filename: &Path) -> Result<Self, NativeError> {
        let file = std::fs::File::open(filename)