posthog_cli/sourcemaps/
mod.rs1use clap::Subcommand;
2use core::str;
3use std::path::PathBuf;
4
5pub mod constant;
6pub mod inject;
7pub mod source_pair;
8pub mod upload;
9
10use crate::sourcemaps::inject::InjectArgs;
11use crate::sourcemaps::upload::UploadArgs;
12
13#[derive(clap::Args)]
14pub struct ProcessArgs {
15 #[arg(short, long)]
17 pub directory: PathBuf,
18
19 #[arg(short, long)]
21 pub ignore: Vec<String>,
22
23 #[arg(long)]
27 pub project: Option<String>,
28
29 #[arg(long)]
33 pub version: Option<String>,
34
35 #[arg(long, default_value = "false")]
37 pub delete_after: bool,
38
39 #[arg(long, default_value = "false")]
42 pub skip_ssl_verification: bool,
43
44 #[arg(long, default_value = "50")]
46 pub batch_size: usize,
47}
48
49#[derive(Subcommand)]
50pub enum SourcemapCommand {
51 Inject(InjectArgs),
53 Upload(UploadArgs),
55 Process(ProcessArgs),
57}
58
59impl From<ProcessArgs> for (InjectArgs, UploadArgs) {
60 fn from(args: ProcessArgs) -> Self {
61 let inject_args = InjectArgs {
62 directory: args.directory.clone(),
63 ignore: args.ignore.clone(),
64 project: args.project,
65 version: args.version,
66 };
67
68 let upload_args = UploadArgs {
69 directory: args.directory,
70 ignore: args.ignore,
71 delete_after: args.delete_after,
72 skip_ssl_verification: args.skip_ssl_verification,
73 batch_size: args.batch_size,
74 project: None,
75 version: None,
76 };
77
78 (inject_args, upload_args)
79 }
80}