External commands
[?]
Nov 28, 2020, 4:55 PM
RJMQSZER3DDPF7ANVKDPMR3KZZ7DKM5ASAOVPBQBAPDLJNL6BJ5ACDependencies
- [2]
GURIBVW6Fixing the pager - [3]
AN7IDX26pijul: added ChangesNotFound error variant - [4]
YAJAXIV5Unrecording changes atomically - [5]
I52XSRUHMassive cleanup, and simplification - [6]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting).
Change contents
- replacement in pijul/src/main.rs at line 177
let opts: Opts = Opts::parse();if let Err(e) = run(opts).await {writeln!(std::io::stderr(), "Error: {}", e).unwrap_or(());std::process::exit(1);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);}} else if let Err((cmd, e)) = external_command() {writeln!(std::io::stderr(),"Error while trying to run {:?}: {}",cmd,e).unwrap_or(()); - edit in pijul/src/main.rs at line 192
}fn external_command() -> Result<(), (String, std::io::Error)> {let mut cmd = String::new();let mut args = Vec::new();for arg in std::env::args().skip(1) {if cmd.is_empty() {cmd.push_str("pijul-");cmd.push_str(&arg)} else {args.push(arg)}}if let Err(e) = run_external_command(&cmd, &args) {Err((cmd, e))} else {Ok(())}}#[cfg(unix)]fn run_external_command(cmd: &str, args: &[String]) -> Result<(), std::io::Error> {use std::os::unix::process::CommandExt;Err(std::process::Command::new(cmd).args(args).exec())}#[cfg(windows)]fn run_external_command(cmd: &str, args: &[String]) -> Result<(), std::io::Error> {let mut spawned = std::process::Command::new(cmd).args(args).spawn()?;let status = spawned.wait()?;std::process::exit(status.code().unwrap_or(1))