vertigo_cli/watch/
watch_opts.rs1use clap::Args;
2
3use crate::build::{BuildOpts, BuildOptsInner};
4use crate::commons::models::CommonOpts;
5use crate::serve::ServeOptsInner;
6use crate::ServeOpts;
7
8#[derive(Args, Debug, Clone)]
9pub struct WatchOpts {
10 #[clap(flatten)]
11 pub common: CommonOpts,
12 #[clap(flatten)]
13 pub build: BuildOptsInner,
14 #[clap(flatten)]
15 pub serve: ServeOptsInner,
16
17 #[arg(long, default_value_t = {5555})]
18 pub port_watch: u16,
19
20 #[arg(long)]
22 pub add_watch_path: Vec<String>,
23
24 #[arg(long, default_value_t = {".gitignore".to_string()}, hide_short_help(true))]
26 pub watch_ignore_lists: String,
27
28 #[arg(long, default_value_t = {"**/*.swp **/*.swx **/*.rs.bk".to_string()}, hide_short_help(true))]
30 pub global_ignores: String,
31}
32
33impl WatchOpts {
34 pub fn to_build_opts(&self) -> BuildOpts {
35 BuildOpts {
36 common: self.common.clone(),
37 inner: self.build.clone(),
38 }
39 }
40
41 pub fn to_serve_opts(&self) -> (ServeOpts, u16) {
42 (
43 ServeOpts {
44 common: self.common.clone(),
45 inner: self.serve.clone(),
46 },
47 self.port_watch,
48 )
49 }
50}