earl_protocol_bash/
schema.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use earl_core::schema::TransportTemplate;
7
8#[derive(Debug, Clone, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct BashOperationTemplate {
11 pub bash: BashScriptTemplate,
12 pub transport: Option<TransportTemplate>,
13}
14
15#[derive(Debug, Clone, Deserialize, Serialize)]
16#[serde(deny_unknown_fields)]
17pub struct BashScriptTemplate {
18 pub script: String,
19 #[serde(default)]
20 pub env: Option<BTreeMap<String, Value>>,
21 pub cwd: Option<String>,
22 pub sandbox: Option<BashSandboxTemplate>,
23}
24
25#[derive(Debug, Clone, Deserialize, Serialize)]
26#[serde(deny_unknown_fields)]
27pub struct BashSandboxTemplate {
28 pub network: Option<bool>,
29 pub writable_paths: Option<Vec<String>>,
30 pub max_time_ms: Option<u64>,
31 pub max_output_bytes: Option<u64>,
32}