summaryrefslogtreecommitdiff
path: root/mingling/src/program/setup/basic.rs
blob: 0ea72a605957528c72e08a2f643a5c7c84a80c61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::program::{Program, setup::ProgramSetup};

/// Performs basic program initialization:
///
/// - Collects `--quiet` flag to control message rendering
/// - Collects `--help` flag to enable help mode
/// - Collects `--confirm` flag to skip user confirmation
pub struct BasicProgramSetup;

impl ProgramSetup for BasicProgramSetup {
    fn setup(program: &mut Program) {
        program.global_flag(["--quiet", "-q"], |p| {
            p.stdout_setting.render_output = false;
            p.stdout_setting.error_output = false;
        });

        program.global_flag(["--help", "-h"], |p| {
            p.user_context.help = true;
        });

        program.global_flag(["--confirm", "-C"], |p| {
            p.user_context.confirm = true;
        });
    }
}