Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }