1use clap::Args;
2use std::path::PathBuf;
3use crate::mds::serve::serve_project;
4
5#[derive(Args)]
6pub struct ServeArgs {
7 #[arg(short, long)]
8 port: Option<u16>,
9 #[arg(long)]
10 domain: Option<String>,
11 #[arg(short, long)]
12 directory: Option<PathBuf>,
13 #[arg(long)]
14 no_convert: bool,
15 #[arg(long)]
16 cache_timeout: Option<u64>,
17 #[arg(long)]
18 max_file_size: Option<u64>,
19}
20
21#[derive(Args)]
22pub struct ServeProjectArgs {
23 #[arg(short, long)]
24 port: Option<u16>,
25 #[arg(long)]
26 host: Option<String>,
27 directory: Option<PathBuf>,
28}
29
30pub fn run(args: ServeArgs) -> anyhow::Result<()> {
31 let port = args.port;
32 let host = args.domain;
33 let directory = args.directory;
34 let verbose = false; let serve_result = serve_project(port, host, directory, verbose);
36 serve_result?;
37 Ok(())
38}