datafusion_ducklake_cli/
args.rs1use std::path::PathBuf;
2
3use clap::Parser;
4
5#[derive(Clone, Debug, Parser)]
6#[command(
7 name = "ducklake-cli",
8 version,
9 about = "Run SQL against a DuckLake-aware Apache DataFusion session."
10)]
11pub struct Cli {
12 #[arg(long = "init", value_name = "FILE")]
14 pub init: Vec<PathBuf>,
15
16 #[arg(
18 short = 'e',
19 long = "execute",
20 value_name = "SQL",
21 conflicts_with = "file"
22 )]
23 pub execute: Vec<String>,
24
25 #[arg(
27 short = 'f',
28 long = "file",
29 value_name = "FILE",
30 conflicts_with = "execute"
31 )]
32 pub file: Option<PathBuf>,
33
34 #[arg(long = "continue-on-error")]
36 pub continue_on_error: bool,
37
38 #[arg(short = 'q', long = "quiet")]
40 pub quiet: bool,
41
42 #[arg(long = "timing")]
44 pub timing: bool,
45
46 #[arg(long = "no-history")]
48 pub no_history: bool,
49
50 #[arg(long = "history-file", value_name = "FILE")]
52 pub history_file: Option<PathBuf>,
53
54 #[arg(long = "object-store-url", value_name = "URL")]
56 pub object_store_url: Vec<String>,
57
58 #[arg(long = "object-store-config", value_name = "KEY=VALUE")]
60 pub object_store_config: Vec<String>,
61
62 #[arg(long = "object-store-local-path", value_name = "PATH")]
64 pub object_store_local_path: Option<PathBuf>,
65
66 #[arg(long = "s3-endpoint", value_name = "URL")]
68 pub s3_endpoint: Option<String>,
69
70 #[arg(long = "s3-access-key-id", value_name = "ID")]
72 pub s3_access_key_id: Option<String>,
73
74 #[arg(long = "s3-secret-access-key", value_name = "SECRET")]
76 pub s3_secret_access_key: Option<String>,
77
78 #[arg(long = "s3-session-token", value_name = "TOKEN")]
80 pub s3_session_token: Option<String>,
81
82 #[arg(long = "s3-region", value_name = "REGION")]
84 pub s3_region: Option<String>,
85
86 #[arg(long = "s3-allow-http", value_name = "BOOL")]
88 pub s3_allow_http: Option<bool>,
89
90 #[arg(long = "s3-path-style")]
92 pub s3_path_style: bool,
93}