vertigo_cli/watch/
watch_opts.rs

1use clap::Args;
2
3use crate::build::{BuildOpts, BuildOptsInner};
4use crate::commons::models::CommonOpts;
5use crate::serve::ServeOptsInner;
6use crate::ServeOpts;
7
8
9#[derive(Args, Debug, Clone)]
10pub struct WatchOpts {
11    #[clap(flatten)]
12    pub common: CommonOpts,
13    #[clap(flatten)]
14    pub build: BuildOptsInner,
15    #[clap(flatten)]
16    pub serve: ServeOptsInner,
17
18    #[arg(long, default_value_t = {5555})]
19    pub port_watch: u16,
20    /// Add more directories to be watched for code changes
21    #[arg(long)]
22    pub add_watch_path: Vec<String>,
23}
24
25impl WatchOpts {
26    pub fn to_build_opts(&self) -> BuildOpts {
27        BuildOpts {
28            common: self.common.clone(),
29            inner: self.build.clone()
30        }
31    }
32
33    pub fn to_serve_opts(&self) -> (ServeOpts, u16) {
34        (
35            ServeOpts {
36                common: self.common.clone(),
37                inner: self.serve.clone()
38            },
39            self.port_watch,
40        )
41    }
42}