use std::path::PathBuf;
use clap::Subcommand;
use crate::sourcemaps::inject::InjectArgs;
pub mod inject;
pub mod upload;
#[derive(Subcommand)]
pub enum SourcemapCommand {
Inject(InjectArgs),
Upload(upload::Args),
Process(ProcessArgs),
}
#[derive(clap::Args)]
pub struct ProcessArgs {
#[arg(short, long)]
pub directory: PathBuf,
#[arg(short, long)]
pub ignore: Vec<String>,
#[arg(short, long)]
pub public_path_prefix: Option<String>,
#[arg(long)]
pub project: Option<String>,
#[arg(long)]
pub version: Option<String>,
#[arg(long, default_value = "false")]
pub delete_after: bool,
#[arg(long, default_value = "50")]
pub batch_size: usize,
}
impl From<ProcessArgs> for (InjectArgs, upload::Args) {
fn from(args: ProcessArgs) -> Self {
let inject_args = InjectArgs {
directory: args.directory.clone(),
ignore: args.ignore.clone(),
project: args.project,
version: args.version,
public_path_prefix: args.public_path_prefix.clone(),
};
let upload_args = upload::Args {
directory: args.directory,
public_path_prefix: args.public_path_prefix,
ignore: args.ignore,
delete_after: args.delete_after,
skip_ssl_verification: false,
batch_size: args.batch_size,
project: None,
version: None,
};
(inject_args, upload_args)
}
}