reactive_graph_client/shared/manpages/
mod.rs

1use crate::shared::manpages::args::ManPagesArguments;
2use crate::shared::manpages::commands::ManPagesActionCommands;
3use crate::shared::manpages::commands::ManPagesCommands;
4use crate::shared::manpages::generate::install_man_pages;
5use crate::shared::manpages::generate::print_man_pages;
6use clap::CommandFactory;
7use std::process::exit;
8
9pub mod args;
10pub mod commands;
11pub mod error;
12pub mod generate;
13
14/// Handles the man pages arguments
15pub fn handle_man_pages<T: CommandFactory>(args: &ManPagesArguments) {
16    if let Some(commands) = &args.commands {
17        match commands {
18            ManPagesCommands::ManPages(args) => match &args.commands {
19                ManPagesActionCommands::Print => {
20                    if let Err(e) = print_man_pages(T::command()) {
21                        eprintln!("Failed to print man pages: {e}");
22                        exit(1);
23                    };
24                    exit(0);
25                }
26                ManPagesActionCommands::Install => {
27                    if let Err(e) = install_man_pages(T::command()) {
28                        eprintln!("Failed to install man pages: {e}");
29                        exit(1);
30                    }
31                    exit(0);
32                }
33            },
34        }
35    }
36}