use clap::{Args, Subcommand};
#[derive(Debug, Args)]
pub(crate) struct SkillArgs {
#[command(subcommand)]
pub command: SkillCommand,
}
#[derive(Debug, Subcommand)]
pub(crate) enum SkillCommand {
Key(SkillKeyArgs),
Sign(SkillSignArgs),
Verify(SkillVerifyArgs),
Trust(SkillTrustArgs),
}
#[derive(Debug, Args)]
pub(crate) struct SkillKeyArgs {
#[command(subcommand)]
pub command: SkillKeyCommand,
}
#[derive(Debug, Subcommand)]
pub(crate) enum SkillKeyCommand {
Generate(SkillKeyGenerateArgs),
}
#[derive(Debug, Args)]
pub(crate) struct SkillKeyGenerateArgs {
#[arg(long, value_name = "PATH")]
pub out: String,
}
#[derive(Debug, Args)]
pub(crate) struct SkillSignArgs {
pub skill: String,
#[arg(long, value_name = "PATH")]
pub key: String,
}
#[derive(Debug, Args)]
pub(crate) struct SkillVerifyArgs {
pub skill: String,
}
#[derive(Debug, Args)]
pub(crate) struct SkillTrustArgs {
#[command(subcommand)]
pub command: SkillTrustCommand,
}
#[derive(Debug, Subcommand)]
pub(crate) enum SkillTrustCommand {
Add(SkillTrustAddArgs),
List(SkillTrustListArgs),
}
#[derive(Debug, Args)]
pub(crate) struct SkillTrustAddArgs {
#[arg(long = "from", value_name = "URL|FILE")]
pub from: String,
}
#[derive(Debug, Args, Default)]
pub(crate) struct SkillTrustListArgs {}