Do not call an external subcommand when the parsing of an existing subcommand fails
[?]
Nov 29, 2020, 12:13 PM
WXAFKN6JL3LRIRTTW2Q7UQIZBZSAHYIUVTPWKMK2GK2W3GZ44XHACDependencies
- [2]
RJMQSZERExternal commands - [3]
AN7IDX26pijul: added ChangesNotFound error variant - [4]
I52XSRUHMassive cleanup, and simplification - [5]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [6]
GURIBVW6Fixing the pager - [7]
YAJAXIV5Unrecording changes atomically
Change contents
- replacement in pijul/src/main.rs at line 177
if let Ok(opts) = Opts::try_parse() {if let Err(e) = run(opts).await {writeln!(std::io::stderr(), "Error: {}", e).unwrap_or(());std::process::exit(1);match external_command() {Ok(false) => {let opts = Opts::parse();if let Err(e) = run(opts).await {writeln!(std::io::stderr(), "Error: {}", e).unwrap_or(());std::process::exit(1);}}Ok(true) => (),Err((cmd, e)) => {writeln!(std::io::stderr(),"Error while trying to run {:?}: {}",cmd,e).unwrap_or(()); - edit in pijul/src/main.rs at line 195
} else if let Err((cmd, e)) = external_command() {writeln!(std::io::stderr(),"Error while trying to run {:?}: {}",cmd,e).unwrap_or(()); - replacement in pijul/src/main.rs at line 199
fn external_command() -> Result<(), (String, std::io::Error)> {fn external_command() -> Result<bool, (String, std::io::Error)> { - edit in pijul/src/main.rs at line 202
use clap::IntoApp;let app = Opts::into_app(); - edit in pijul/src/main.rs at line 206
if app.get_subcommands().any(|sub| sub.get_name() == arg || sub.get_all_aliases().any(|al| al == arg)){return Ok(false);} - replacement in pijul/src/main.rs at line 221
Ok(())Ok(true)