use clap::{Parser, ValueEnum};
use quilt_api::get_manifest_as_type;
use serde::Serialize;
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Cli {
uri: String,
#[arg(short, long, value_enum, default_value = "html")]
format: Formats,
}
#[derive(
ValueEnum, Clone, Default, Debug, Serialize,
)]
enum Formats {
#[default]
Html,
Json,
String,
}
#[tokio::main]
async fn main() {
let cli = Cli::parse();
let uri = cli.uri;
let format = cli.format;
tracing::info!("{:?} for uri: {}", format, uri);
let mime_type = match format {
Formats::Html => {
mime::TEXT_HTML
}
Formats::Json => {
mime::APPLICATION_JSON
}
Formats::String => {
mime::TEXT_PLAIN
}
};
tracing::info!("mime_type {} for {:?}", mime_type, format);
let result = get_manifest_as_type(uri, mime_type).await;
println!("{}", result);
}