chiark / gitweb /
otter cli: Add --no-prefs option
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 8 Jun 2021 18:09:25 +0000 (19:09 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 8 Jun 2021 18:10:06 +0000 (19:10 +0100)
This saves the user using --prefs /dev/null.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
cli/otter.rs

index f76f2d0659853df73822785a5b2b92048fe855ad..51c78fec4ab16c5de2522f8d069a17917d944282 100644 (file)
@@ -218,9 +218,13 @@ fn main() {
                     (shell syntax, interpreted by the remote shell)",
                     default_ssh_proxy_command()))));
 
-    ap.refer(&mut rma.prefs_path)
+    let mut prefs_path = ap.refer(&mut rma.prefs_path);
+    prefs_path
       .add_option(&["--prefs"], StoreOption,
                   "preferences file (usually ~/.config/otter/prefs.toml)");
+    prefs_path
+      .add_option(&["--no-prefs"], StoreConst(Some("/dev/null".to_owned())),
+                  "do not read any preferences file");
 
     ap.refer(&mut rma.spec_dir)
       .add_option(&["--spec-dir"], StoreOption,
@@ -365,6 +369,9 @@ option values; or`true` and `false` for just --option or --no-option.
       })
       .context("locate preferences file (prefs.toml)")?;
 
+    // shortcut this mostly for portability
+    if prefs_path == PathBuf::from(&"/dev/null") { return Ok(()) }
+
     let data: Option<Prefs> = (||{
       let data = match fs::read_to_string(&prefs_path) {
         Err(e) if e.kind() == ErrorKind::NotFound => {