pub mod commands;
pub mod interactive;
use clap::{Parser, Subcommand};
use std::path::PathBuf;
#[derive(Parser, Debug)]
#[command(name = "tetrad")]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, default_value = "tetrad.toml")]
pub config: PathBuf,
#[arg(short, long)]
pub verbose: bool,
#[arg(short, long)]
pub quiet: bool,
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Init {
#[arg(short, long)]
path: Option<PathBuf>,
},
Serve {
#[arg(short, long)]
port: Option<u16>,
},
Status,
Config,
Doctor,
Version,
Evaluate {
#[arg(short = 'c', long)]
code: String,
#[arg(short, long, default_value = "auto")]
language: String,
},
History {
#[arg(short, long, default_value = "20")]
limit: usize,
},
Export {
#[arg(short, long, default_value = "tetrad-patterns.json")]
output: PathBuf,
},
Import {
input: PathBuf,
},
}