xtask/cmd/
mod.rs

1use anyhow::Context;
2
3mod change_logs;
4mod dev_tools;
5mod power_set;
6mod semver_checks;
7mod workspace_deps;
8
9const IGNORED_PACKAGES: &[&str] = &["scuffle-workspace-hack", "xtask"];
10
11#[derive(Debug, Clone, clap::Subcommand)]
12pub enum Commands {
13    #[clap(alias = "powerset")]
14    PowerSet(power_set::PowerSet),
15    WorkspaceDeps(workspace_deps::WorkspaceDeps),
16    #[clap(alias = "change-log", subcommand)]
17    ChangeLogs(change_logs::Commands),
18    DevTools(dev_tools::DevTools),
19    SemverChecks(semver_checks::SemverChecks),
20}
21
22impl Commands {
23    pub fn run(self) -> anyhow::Result<()> {
24        match self {
25            Commands::PowerSet(cmd) => cmd.run().context("power set"),
26            Commands::WorkspaceDeps(cmd) => cmd.run().context("workspace deps"),
27            Commands::ChangeLogs(cmd) => cmd.run().context("change logs"),
28            Commands::DevTools(cmd) => cmd.run().context("dev tools"),
29            Commands::SemverChecks(cmd) => cmd.run().context("semver checks"),
30        }
31    }
32}