Beispiel #1
0
        private static void EnsureRequiredApplications(ServerParameters serverParameters, HostConfig config)
        {
            var requires = config.Definition.Elements("require");

            foreach (var require in requires)
            {
                if (!string.IsNullOrWhiteSpace(require.Attr("server")))
                {
                    continue;                                                   //external service
                }
                var name      = require.IdCodeOrValue() + require.Attr("suffix");
                var shadow    = EnvironmentInfo.GetShadowDirectory(name);
                var processes = Process.GetProcessesByName("qh");
                Console.WriteLine(string.Join("; ", processes.Select(_ => _.ProcessName)));
                var required =
                    processes.FirstOrDefault(_ => _.MainModule.FileName.NormalizePath().StartsWith(shadow.NormalizePath()));
                if (null != required)
                {
                    config.Log.Info("Required '" + name + "' found, PID: " + required.Id);
                }
                else
                {
                    var args = name;
                    if (serverParameters.Get("hidden", false))
                    {
                        args += " --hidden";
                    }
                    required = Process.Start(EnvironmentInfo.ResolvePath("@repos@/.build/bin/all/qh.exe"), args);
                    config.Log.Info("Required '" + name + "' started, PID: " + required.Id);
                }
            }
        }
Beispiel #2
0
	    private static int Execute(ServerParameters arg) {
	        var config = arg.BuildServerConfig();
	        EnsureRequiredApplications(arg,config);
	        config.DllFolder = EnvironmentInfo.ResolvePath("@repos@/.build/bin/all");
            var command = arg.Get("command", "");
	        if (string.IsNullOrWhiteSpace(command)) {
	            Console.WriteLine("LOGLEVEL " + config.LogLevel);
	        }
	        var hostServer = new HostServer(config);
            hostServer.Initialize();
            var consoleContext = new ConsoleContext
            {
                Container = hostServer.Container,
                Parameters = arg
            };
            var listener = new ConsoleListener(consoleContext);
            
	        if (!string.IsNullOrWhiteSpace(command)) {
	            var task = listener.Call(command);
	            task.Wait();
	        }
	        else {

	            LogHostInfo(arg, config);
	            hostServer.Start();
	            Console.WriteLine("LOGLEVEL " + config.LogLevel);

	            listener.Log = hostServer.Container.Get<ILoggyManager>().Get("console");
	            listener.Run();
	            hostServer.Stop();
	        }
	        return 0;
	    }
Beispiel #3
0
        private static int Execute(ServerParameters arg)
        {
            var config = arg.BuildServerConfig();

            EnsureRequiredApplications(arg, config);
            config.DllFolder = EnvironmentInfo.ResolvePath("@repos@/.build/bin/all");
            var command = arg.Get("command", "");

            if (string.IsNullOrWhiteSpace(command))
            {
                Console.WriteLine("LOGLEVEL " + config.LogLevel);
            }
            var hostServer = new HostServer(config);

            hostServer.Initialize();
            var consoleContext = new ConsoleContext
            {
                Container  = hostServer.Container,
                Parameters = arg
            };
            var listener = new ConsoleListener(consoleContext);

            if (!string.IsNullOrWhiteSpace(command))
            {
                var task = listener.Call(command);
                task.Wait();
            }
            else
            {
                LogHostInfo(arg, config);
                hostServer.Start();
                Console.WriteLine("LOGLEVEL " + config.LogLevel);

                listener.Log = hostServer.Container.Get <ILoggyManager>().Get("console");
                listener.Run();
                hostServer.Stop();
            }
            return(0);
        }
Beispiel #4
0
	    private static void EnsureRequiredApplications(ServerParameters serverParameters, HostConfig config) {
	        var requires = config.Definition.Elements("require");
	        foreach (var require in requires) {
                if(!string.IsNullOrWhiteSpace(require.Attr("server")))continue; //external service
	            var name = require.IdCodeOrValue()+require.Attr("suffix");
	            var shadow = EnvironmentInfo.GetShadowDirectory(name);
	            var processes = Process.GetProcessesByName("qh");
                Console.WriteLine(string.Join("; ",processes.Select(_=>_.ProcessName)));
	            var required =
	                processes.FirstOrDefault(_ => _.MainModule.FileName.NormalizePath().StartsWith(shadow.NormalizePath()));
	            if (null != required) {
	                config.Log.Info("Required '" + name + "' found, PID: " + required.Id);
	            }
	            else {
	                var args = name;
	                if (serverParameters.Get("hidden", false)) {
	                    args += " --hidden";
	                }
	                required = Process.Start(EnvironmentInfo.ResolvePath("@repos@/.build/bin/all/qh.exe"), args);
                    config.Log.Info("Required '" + name + "' started, PID: " + required.Id);
	            }
	        }
	    }