Skip to main content

earl_protocol_bash/
schema.rs

1use 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}