1use abscissa_core::{status_err, Application, Command, Runnable, Shutdown};
4
5use clap::Parser;
6use pace_core::prelude::HoldCommandOptions;
7
8use crate::prelude::PACE_APP;
9
10#[derive(Command, Debug, Parser)]
12pub struct HoldCmd {
13 #[clap(flatten)]
14 hold_opts: HoldCommandOptions,
15}
16
17impl Runnable for HoldCmd {
18 fn run(&self) {
19 match self.hold_opts.handle_hold(&PACE_APP.config()) {
20 Ok(user_message) => user_message.display(),
21 Err(err) => {
22 status_err!("{}", err);
23 PACE_APP.shutdown(Shutdown::Crash);
24 }
25 };
26 }
27}