aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/main.rs
blob: 149093c975721905a91c0002ef4d8cc87101651d (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::metadata::MinglingMetadataSetup;
use mingling::{
    ShellContext, Suggest,
    consts::HELP_FLAG,
    macros::{completion, gen_program, help, suggest},
    setup::{ExitCodeSetup, picker::HelpFlagSetup},
};

pub mod diagnostic;
pub mod errors;
pub mod linter;
pub mod lints;
pub mod message;
pub mod metadata;

#[tokio::main]
async fn main() {
    let mut program = ThisProgram::new();

    // Setups
    program.with_setup(HelpFlagSetup::default());
    program.with_setup(ExitCodeSetup::default());

    program.with_setup(MinglingMetadataSetup);

    // Exec
    program.exec_and_exit().await;
}

#[help]
pub fn help_global(_: EntryFallback) -> String {
    include_str!("../help/help.txt").to_string()
}

#[completion(EntryFallback)]
pub fn complete_global(_ctx: &ShellContext) -> Suggest {
    suggest! {
        HELP_FLAG: "Show help messages"
    }
}

gen_program!();