chiark / gitweb /
misc.online: Support for `auto`
[nailing-cargo.git] / nailing-cargo
index 9b7be113d20b482d24a2823d42b53723f19617ea..b8428349669c2fccfcbf8c3c17216035241856e6 100755 (executable)
@@ -363,7 +363,23 @@ sub calculate () {
 
 sub addargs () {
   $online = 1 if subcmd_p('online');
-  $online //= cfg_bool qw(misc online);
+  if (!defined $online) {
+    $_ = cfg_uc qw(misc online);
+    if (!defined $_) {
+    } elsif (Types::Serialiser::is_bool $_) {
+      $online = $_;
+    } elsif (ref $_) {
+    } elsif (m/^a/) {
+      $online = undef;
+    } elsif (m/^[1ty]/) { # allow booleanish strings
+      $online = 1;        # for less user frustration
+    } elsif (m/^[0fn]/) {
+      $online = 0;
+    } else {
+      badcfg qw(misc online), "expected boolean or 'auto', found '$_'";
+    }
+  }
+  $online //= cfg_bool 
   $online //= 0;
 
   $cargo_lock_update //= subcmd_p('lock-update');