use clap::{Args, Parser, Subcommand};
use crate::tools::migrations::SetupArgs;
pub mod generate;
pub mod redo;
pub mod revert;
pub mod run;
pub mod setup;
#[derive(Parser)]
#[command(author, version)]
#[command(name = "chm", about = "Clickhouse migration tool")]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
Setup(SetupArgs),
#[command(subcommand)]
Migration(MigrationCommands),
}
#[derive(Subcommand)]
pub enum MigrationCommands {
Generate(GenerateArgs),
Run,
Redo,
Revert,
}
#[derive(Args, Debug)]
pub struct GenerateArgs {
pub name: String,
}