use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Watch,
#[command(trailing_var_arg = true)]
Ask {
#[arg(required = true)]
prompt: Vec<String>,
},
#[command(trailing_var_arg = true)]
Architect {
#[arg(required = true)]
prompt: Vec<String>,
},
#[command(trailing_var_arg = true)]
Code {
#[arg(required = true)]
prompt: Vec<String>,
},
}
fn main() {
let cli = Cli::parse();
match cli.command {
Commands::Watch => {
println!("Watching for file changes...");
}
Commands::Ask { prompt } => {
let prompt = prompt.join(" ");
println!("Answering question: {}", prompt);
}
Commands::Architect { prompt } => {
let prompt = prompt.join(" ");
println!("Providing architectural advice for: {}", prompt);
}
Commands::Code { prompt } => {
let prompt = prompt.join(" ");
println!("Generating/modifying code for: {}", prompt);
}
}
}