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}