chiark / gitweb /
config: Break out read_file
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 14:27:56 +0000 (15:27 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 14:27:56 +0000 (15:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/config.rs

index da69bf6dd3784dc291beb756fa6932282389e3dc..7e9e222d36923d815c96de784cc0fb1e3ba0dd93 100644 (file)
@@ -176,6 +176,12 @@ impl Aggregate {
     if let Some(anyway) = anyway.ok(&y) { return Some(anyway) }
     y.context("read")?;
 
+    self.read_string(s, path)?;
+    None
+  }
+
+  #[throws(AE)] // AE does not include path
+  fn read_string(&mut self, s: String, path_for_loc: &Path) {
     let mut ini = Ini::new_cs();
     ini.set_default_section(OUTSIDE_SECTION);
     ini.read(s).map_err(|e| anyhow!("{}", e)).context("parse as INI")?;
@@ -184,7 +190,7 @@ impl Aggregate {
       throw!(anyhow!("INI file contains settings outside a section"));
     }
 
-    let loc = Arc::new(path.to_owned());
+    let loc = Arc::new(path_for_loc.to_owned());
 
     for (sn, vars) in map {
       dbg!( InstanceConfig::FIELDS );// check xxx vars are in fields
@@ -200,7 +206,7 @@ impl Aggregate {
             })
         );
     }
-    None
+    
   }
 
   #[throws(AE)] // AE includes path