43 lines · 1.5 KB · Rust
RawDownload
mod tasks;mod workspace; use anyhow::Result;use clap::{Parser, Subcommand}; #[derive(Parser)]#[command(name = "cargo xtask")]struct Args {    #[command(subcommand)]    command: CliCommand,} #[derive(Subcommand)]enum CliCommand {    /// Runs `cargo clippy`.    Clippy(tasks::clippy::ClippyArgs),    Licenses(tasks::licenses::LicensesArgs),    /// Checks that packages conform to a set of standards.    PackageConformity(tasks::package_conformity::PackageConformityArgs),    /// Publishes GPUI and its dependencies to crates.io.    PublishGpui(tasks::publish_gpui::PublishGpuiArgs),    /// Builds GPUI web examples and serves them.    WebExamples(tasks::web_examples::WebExamplesArgs),    Workflows(tasks::workflows::GenerateWorkflowArgs),    CheckWorkflows(tasks::workflow_checks::WorkflowValidationArgs),} fn main() -> Result<()> {    let args = Args::parse();     match args.command {        CliCommand::Clippy(args) => tasks::clippy::run_clippy(args),        CliCommand::Licenses(args) => tasks::licenses::run_licenses(args),        CliCommand::PackageConformity(args) => {            tasks::package_conformity::run_package_conformity(args)        }        CliCommand::PublishGpui(args) => tasks::publish_gpui::run_publish_gpui(args),        CliCommand::WebExamples(args) => tasks::web_examples::run_web_examples(args),        CliCommand::Workflows(args) => tasks::workflows::run_workflows(args),        CliCommand::CheckWorkflows(args) => tasks::workflow_checks::validate(args),    }}