use clap::Subcommand;
use crate::options::*;
#[derive(Subcommand, Debug, Clone)]
pub enum CommandArguments {
Config,
Batch {
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
target: TargetOptions,
#[command(flatten)]
verify: VerifyOptions,
#[command(flatten)]
runner: RunnerOptions,
#[command(flatten)]
spectrogram: SpectrogramOptions,
#[command(flatten)]
copy: CopyOptions,
#[command(flatten)]
file: FileOptions,
#[command(flatten)]
batch: BatchOptions,
#[command(flatten)]
cache: CacheOptions,
#[command(flatten)]
upload: UploadOptions,
},
Queue {
#[command(subcommand)]
command: QueueCommandArguments,
},
Spectrogram {
#[command(flatten)]
source: SourceArg,
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
spectrogram: SpectrogramOptions,
#[command(flatten)]
runner: RunnerOptions,
},
Transcode {
#[command(flatten)]
source: SourceArg,
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
target: TargetOptions,
#[command(flatten)]
copy: CopyOptions,
#[command(flatten)]
file: FileOptions,
#[command(flatten)]
runner: RunnerOptions,
},
Upload {
#[command(flatten)]
source: SourceArg,
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
target: TargetOptions,
#[command(flatten)]
upload: UploadOptions,
#[command(flatten)]
copy: CopyOptions,
},
Verify {
#[command(flatten)]
source: SourceArg,
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
target: TargetOptions,
#[command(flatten)]
verify: VerifyOptions,
},
}
#[derive(Subcommand, Debug, Clone)]
pub enum QueueCommandArguments {
Add {
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
cache: CacheOptions,
#[command(flatten)]
args: QueueAddArgs,
},
List {
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
cache: CacheOptions,
#[command(flatten)]
batch: BatchOptions,
},
#[command(name = "rm")]
Remove {
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
cache: CacheOptions,
#[command(flatten)]
args: QueueRemoveArgs,
},
Summary {
#[command(flatten)]
shared: SharedOptions,
#[command(flatten)]
cache: CacheOptions,
},
}