cli_xtask/subcommand/
dist_build.rs1use crate::{config::Config, Result, Run};
2
3#[cfg_attr(doc, doc = include_str!("../../doc/cargo-xtask-dist-build.md"))]
5#[derive(Debug, Clone, Default, clap::Args)]
6#[non_exhaustive]
7pub struct DistBuild {
8 #[cfg(feature = "subcommand-dist-build-bin")]
10 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-bin")))]
11 #[clap(flatten)]
12 pub dist_build_bin_args: super::DistBuildBin,
13
14 #[cfg(feature = "subcommand-dist-build-completion")]
16 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-completion")))]
17 #[clap(flatten)]
18 pub dist_build_completion_args: super::DistBuildCompletion,
19
20 #[cfg(feature = "subcommand-dist-build-doc")]
22 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-doc")))]
23 #[clap(flatten)]
24 pub dist_build_doc_args: super::DistBuildDoc,
25
26 #[cfg(feature = "subcommand-dist-build-license")]
28 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-license")))]
29 #[clap(flatten)]
30 pub dist_build_license_args: super::DistBuildLicense,
31
32 #[cfg(feature = "subcommand-dist-build-man")]
34 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-man")))]
35 #[clap(flatten)]
36 pub dist_build_man_args: super::DistBuildMan,
37
38 #[cfg(feature = "subcommand-dist-build-readme")]
40 #[cfg_attr(docsrs, doc(cfg(feature = "subcommand-dist-build-readme")))]
41 #[clap(flatten)]
42 pub dist_build_readme_args: super::DistBuildReadme,
43}
44
45impl Run for DistBuild {
46 fn run(&self, config: &Config) -> Result<()> {
47 self.run(config)
48 }
49}
50
51impl DistBuild {
52 #[tracing::instrument(name = "dist-build", skip_all, err)]
54 pub fn run(&self, config: &Config) -> Result<()> {
55 let Self {
56 #[cfg(feature = "subcommand-dist-build-bin")]
57 dist_build_bin_args,
58 #[cfg(feature = "subcommand-dist-build-completion")]
59 dist_build_completion_args,
60 #[cfg(feature = "subcommand-dist-build-doc")]
61 dist_build_doc_args,
62 #[cfg(feature = "subcommand-dist-build-license")]
63 dist_build_license_args,
64 #[cfg(feature = "subcommand-dist-build-man")]
65 dist_build_man_args,
66 #[cfg(feature = "subcommand-dist-build-readme")]
67 dist_build_readme_args,
68 } = self;
69
70 #[cfg(feature = "subcommand-dist-build-bin")]
71 dist_build_bin_args.run(config)?;
72
73 #[cfg(feature = "subcommand-dist-build-completion")]
74 dist_build_completion_args.run(config)?;
75
76 #[cfg(feature = "subcommand-dist-build-doc")]
77 dist_build_doc_args.run(config)?;
78
79 #[cfg(feature = "subcommand-dist-build-license")]
80 dist_build_license_args.run(config)?;
81
82 #[cfg(feature = "subcommand-dist-build-man")]
83 dist_build_man_args.run(config)?;
84
85 #[cfg(feature = "subcommand-dist-build-readme")]
86 dist_build_readme_args.run(config)?;
87
88 Ok(())
89 }
90}