chiark / gitweb /
config: Substitutions prefer %{...} to %(...)s, document, etc.
[hippotat.git] / src / config.rs
index c38b580661af81fd2ed7118486f48ff0936402b8..4b94b3ed73357db4659e2c3fde777e4e67b13e66 100644 (file)
@@ -58,7 +58,7 @@ ifname_client = hippo%d
 ifname_server = shippo%d
 max_clock_skew = 300
 
-ipif = userv root ipif %(local)s,%(peer)s,%(mtu)s,slip,%(ifname)s '%(rnets)s'
+ipif = userv root ipif %{local},%{peer},%{mtu},slip,%{ifname} '%{rnets}'
 
 mtu = 1500
 
@@ -694,11 +694,11 @@ impl InstanceConfig {
         .collect::<HashMap<String, String>>();
       let bad = parking_lot::Mutex::new(vec![]);
       *var = regex_replace_all!(
-        r#"%(?:%|\((\w+)\)s|.)"#,
+        r#"%(?:%|\((\w+)\)s|\{(\w+)\}|.)"#,
         &var,
-        |whole, k| (|| Ok::<_,String>({
+        |whole, k1, k2| (|| Ok::<_,String>({
           if whole == "%%" { "%" }
-          else if k != "" {
+          else if let Some(&k) = [k1,k2].iter().find(|&&s| s != "") {
             substs.get(k).ok_or_else(
               || format!("unknown key %({})s", k)
             )?