mirror of
https://github.com/rustic-rs/rustic.git
synced 2025-10-26 11:18:51 +00:00
fix: return exitcode (#1220)
rustic now returns an error code for failing command. Note: Some command do not fail yet fail in every cases user would expect is. Most notably the `check` ckommand producing `error` messages may still return error code 0. closes #927
This commit is contained in:
parent
9cada7eab4
commit
ffe05f58d0
@ -1,11 +1,11 @@
|
||||
//! Rustic Abscissa Application
|
||||
use std::env;
|
||||
use std::{env, process};
|
||||
|
||||
use abscissa_core::{
|
||||
application::{self, AppCell},
|
||||
application::{self, fatal_error, AppCell},
|
||||
config::{self, CfgCell},
|
||||
terminal::component::Terminal,
|
||||
Application, Component, FrameworkError, StandardPaths,
|
||||
Application, Component, FrameworkError, Shutdown, StandardPaths,
|
||||
};
|
||||
|
||||
use anyhow::Result;
|
||||
@ -99,4 +99,25 @@ impl Application for RusticApp {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Shut down this application gracefully
|
||||
fn shutdown(&self, shutdown: Shutdown) -> ! {
|
||||
let exit_code = match shutdown {
|
||||
Shutdown::Crash => 1,
|
||||
_ => 0,
|
||||
};
|
||||
self.shutdown_with_exitcode(shutdown, exit_code)
|
||||
}
|
||||
}
|
||||
|
||||
impl RusticApp {
|
||||
/// Shut down this application gracefully, exiting with given exit code.
|
||||
fn shutdown_with_exitcode(&self, shutdown: Shutdown, exit_code: i32) -> ! {
|
||||
let result = self.state().components().shutdown(self, shutdown);
|
||||
if let Err(e) = result {
|
||||
fatal_error(self, &e)
|
||||
}
|
||||
|
||||
process::exit(exit_code);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user