systemprompt_cli/commands/web/
mod.rs1pub 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}