use std::fmt::{Display, Formatter};
use clap::{arg, Parser, ValueEnum};
use crate::bootstrap::bootstrap_cmd;
use crate::post::post_cmd;
mod test_data;
mod decompress;
mod post;
mod bootstrap;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
enum Args {
Post(PostArgs),
Bootstrap(BootstrapArgs),
}
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct PostArgs {
#[arg(short, long)]
name: Option<String>,
#[arg(short, long)]
title: Option<String>,
#[arg(short, long, default_value_t = PostOutput::Stdout)]
output: PostOutput,
}
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct BootstrapArgs {
#[arg(short, long)]
out_dir: String,
}
#[derive(Clone, Debug, ValueEnum)]
enum PostOutput {
Stdout,
File,
Dir,
}
impl Display for PostOutput {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "")
}
}
fn main() {
let args = Args::parse();
match args {
Args::Post(args) => post_cmd(args),
Args::Bootstrap(args) => bootstrap_cmd(args),
};
}