Skip to main content

systemprompt_cli/commands/web/
mod.rs

1pub mod assets;
2pub mod content_types;
3pub mod paths;
4pub mod sitemap;
5pub mod templates;
6pub mod types;
7mod validate;
8
9use anyhow::Result;
10use clap::Subcommand;
11
12use crate::cli_settings::get_global_config;
13use crate::shared::render_result;
14use crate::CliConfig;
15
16#[derive(Debug, Subcommand)]
17pub enum WebCommands {
18    #[command(subcommand, about = "Manage content types")]
19    ContentTypes(content_types::ContentTypesCommands),
20
21    #[command(subcommand, about = "Manage templates")]
22    Templates(templates::TemplatesCommands),
23
24    #[command(subcommand, about = "List and inspect assets")]
25    Assets(assets::AssetsCommands),
26
27    #[command(subcommand, about = "Sitemap operations")]
28    Sitemap(sitemap::SitemapCommands),
29
30    #[command(about = "Validate web configuration")]
31    Validate(validate::ValidateArgs),
32}
33
34pub fn execute(command: WebCommands) -> Result<()> {
35    let config = get_global_config();
36    execute_with_config(command, &config)
37}
38
39pub fn execute_with_config(command: WebCommands, config: &CliConfig) -> Result<()> {
40    match command {
41        WebCommands::ContentTypes(cmd) => content_types::execute(cmd, config),
42        WebCommands::Templates(cmd) => templates::execute(cmd, config),
43        WebCommands::Assets(cmd) => assets::execute(cmd, config),
44        WebCommands::Sitemap(cmd) => sitemap::execute(cmd, config),
45        WebCommands::Validate(args) => {
46            let result = validate::execute(&args, config)?;
47            render_result(&result);
48            Ok(())
49        },
50    }
51}