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