public void Run(Controllers.IWebSocketEventSender websocket, Models.ApiProcessSpec apiProcessSpec) { container.StartGuard(); var processSpec = NewProcessSpec(apiProcessSpec); CopyProcessSpecEnvVariables(processSpec, apiProcessSpec.Env); OverrideEnvPort(processSpec); var process = Run(websocket, processSpec); if (process != null) { WaitForExit(websocket, process); } }
private ProcessSpec NewProcessSpec(Models.ApiProcessSpec apiProcessSpec) { var processSpec = new ProcessSpec { DisablePathMapping = false, Privileged = false, WorkingDirectory = container.Directory.UserPath, ExecutablePath = apiProcessSpec.Path, Environment = new Dictionary <string, string> { { "USERPROFILE", container.Directory.UserPath }, { "ARGJSON", JsonConvert.SerializeObject(apiProcessSpec.Args) } }, Arguments = apiProcessSpec.Args }; return(processSpec); }