DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/WindServiceHandlers/Terminal/
LocalPTYCreateProcess.rs1use std::sync::Arc;
9
10use serde_json::Value;
11
12use crate::{
13 IPC::WindServiceHandlers::Terminal::TerminalCreate::Fn as TerminalCreate,
14 RunTime::ApplicationRunTime::ApplicationRunTime,
15};
16
17pub async fn Fn(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
18 match TerminalCreate(RunTime, Arguments).await {
19 Ok(Response) => {
20 let TerminalIdOption = Response.get("id").and_then(serde_json::Value::as_u64);
21
22 match TerminalIdOption {
23 Some(TerminalId) if TerminalId > 0 => Ok(serde_json::json!(TerminalId)),
24
25 Some(_) | None => {
26 crate::dev_log!(
31 "terminal",
32 "error: [localPty:createProcess] CreateTerminal returned no usable id; response={:?}",
33 Response
34 );
35
36 Err(format!(
37 "localPty:createProcess: CreateTerminal returned no terminal id (response={})",
38 Response
39 ))
40 },
41 }
42 },
43
44 Err(Error) => Err(Error),
45 }
46}