diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2018-05-13 13:18:08 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2018-05-13 13:18:08 +1200 |
| commit | 8396da188251ae8d6d2970a497ecdf07bf4ef04f (patch) | |
| tree | e4bd2a8df48fa55dc0fa7be27a107d54164f70de /src | |
| parent | a8e7a7c8b8af13e33257c136fa0c9e88e7e216ca (diff) | |
Add `--backup` flag
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/main.rs | 1 | ||||
| -rw-r--r-- | src/config/options.rs | 6 | ||||
| -rw-r--r-- | src/lib.rs | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/src/bin/main.rs b/src/bin/main.rs index 00a582cb3cb..c903ba18561 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -91,6 +91,7 @@ fn make_opts() -> Options { let mut opts = Options::new(); // Sorted in alphabetical order. + opts.optflag("", "backup", "Backup any modified files."); opts.optflag( "", "check", diff --git a/src/config/options.rs b/src/config/options.rs index be3aa1f13d4..b3c0acb854e 100644 --- a/src/config/options.rs +++ b/src/config/options.rs @@ -368,7 +368,11 @@ impl CliOptions { return Err(format_err!("Invalid to set write-mode and `--check`")); } if let Ok(write_mode) = WriteMode::from_str(write_mode) { - options.write_mode = Some(write_mode); + if write_mode == WriteMode::Overwrite && matches.opt_present("backup") { + options.write_mode = Some(WriteMode::Replace); + } else { + options.write_mode = Some(write_mode); + } } else { return Err(format_err!( "Invalid write-mode: {}, expected one of {}", diff --git a/src/lib.rs b/src/lib.rs index 98983da1164..e30f4d586bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -68,7 +68,7 @@ pub use config::{file_lines, load_config, Config, Verbosity, WriteMode}; pub type FmtResult<T> = std::result::Result<T, failure::Error>; -pub const WRITE_MODE_LIST: &str = "[replace|overwrite|display|plain|diff|coverage|checkstyle]"; +pub const WRITE_MODE_LIST: &str = "[overwrite|display|plain|diff|coverage|checkstyle]"; #[macro_use] mod utils; |
