Exemple #1
0
        public static void RunServer(TorchConfig config)
        {
            /*
             * if (!parser.ParseArguments(args, config))
             * {
             *  _log.Error($"Parsing arguments failed: {string.Join(" ", args)}");
             *  return;
             * }
             *
             * if (!string.IsNullOrEmpty(config.Config) && File.Exists(config.Config))
             * {
             *  config = ServerConfig.LoadFrom(config.Config);
             *  parser.ParseArguments(args, config);
             * }*/

            //RestartOnCrash autostart autosave=15
            //gamepath ="C:\Program Files\Space Engineers DS" instance="Hydro Survival" instancepath="C:\ProgramData\SpaceEngineersDedicated\Hydro Survival"

            /*
             * if (config.InstallService)
             * {
             *  var serviceName = $"\"Torch - {config.InstanceName}\"";
             *  // Working on installing the service properly instead of with sc.exe
             *  _log.Info($"Installing service '{serviceName}");
             *  var exePath = $"\"{Assembly.GetExecutingAssembly().Location}\"";
             *  var createInfo = new ServiceCreateInfo
             *  {
             *      Name = config.InstanceName,
             *      BinaryPath = exePath,
             *  };
             *  _log.Info("Service Installed");
             *
             *  var runArgs = string.Join(" ", args.Skip(1));
             *  _log.Info($"Installing Torch as a service with arguments '{runArgs}'");
             *  var startInfo = new ProcessStartInfo
             *  {
             *      FileName = "sc.exe",
             *      Arguments = $"create Torch binPath=\"{Assembly.GetExecutingAssembly().Location} {runArgs}\"",
             *      CreateNoWindow = true,
             *      UseShellExecute = true,
             *      Verb = "runas"
             *  };
             *  Process.Start(startInfo).WaitForExit();
             *  _log.Info("Torch service installed");
             *  return;
             * }
             *
             * if (config.UninstallService)
             * {
             *  _log.Info("Uninstalling Torch service");
             *  var startInfo = new ProcessStartInfo
             *  {
             *      FileName = "sc.exe",
             *      Arguments = "delete Torch",
             *      CreateNoWindow = true,
             *      UseShellExecute = true,
             *      Verb = "runas"
             *  };
             *  Process.Start(startInfo).WaitForExit();
             *  _log.Info("Torch service uninstalled");
             *  return;
             * }*/

            _server = new TorchServer(config);

            _server.Init();
            if (config.NoGui || config.Autostart)
            {
                new Thread(() => _server.Start()).Start();
            }

            if (!config.NoGui)
            {
                var ui = new TorchUI((TorchServer)_server);
                ui.ShowDialog();
            }
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            if (!Environment.UserInteractive)
            {
                using (var service = new TorchService())
                {
                    ServiceBase.Run(service);
                }
                return;
            }

            var         configName = /*args.FirstOrDefault() ??*/ "TorchConfig.xml";
            var         configPath = Path.Combine(Directory.GetCurrentDirectory(), configName);
            TorchConfig options;

            if (File.Exists(configName))
            {
                _log.Info($"Loading config {configPath}");
                options = TorchConfig.LoadFrom(configPath);
            }
            else
            {
                _log.Info($"Generating default config at {configPath}");
                options = new TorchConfig();
                options.Save(configPath);
            }

            bool gui = true;

            foreach (var arg in args)
            {
                switch (arg)
                {
                case "-noupdate":
                    options.EnableAutomaticUpdates = false;
                    break;

                case "-nogui":
                    gui = false;
                    break;
                }
            }

            /*
             * if (!parser.ParseArguments(args, options))
             * {
             *  _log.Error($"Parsing arguments failed: {string.Join(" ", args)}");
             *  return;
             * }
             *
             * if (!string.IsNullOrEmpty(options.Config) && File.Exists(options.Config))
             * {
             *  options = ServerConfig.LoadFrom(options.Config);
             *  parser.ParseArguments(args, options);
             * }*/

            //RestartOnCrash autostart autosave=15
            //gamepath ="C:\Program Files\Space Engineers DS" instance="Hydro Survival" instancepath="C:\ProgramData\SpaceEngineersDedicated\Hydro Survival"

            /*
             * if (options.InstallService)
             * {
             *  var serviceName = $"\"Torch - {options.InstanceName}\"";
             *  // Working on installing the service properly instead of with sc.exe
             *  _log.Info($"Installing service '{serviceName}");
             *  var exePath = $"\"{Assembly.GetExecutingAssembly().Location}\"";
             *  var createInfo = new ServiceCreateInfo
             *  {
             *      Name = options.InstanceName,
             *      BinaryPath = exePath,
             *  };
             *  _log.Info("Service Installed");
             *
             *  var runArgs = string.Join(" ", args.Skip(1));
             *  _log.Info($"Installing Torch as a service with arguments '{runArgs}'");
             *  var startInfo = new ProcessStartInfo
             *  {
             *      FileName = "sc.exe",
             *      Arguments = $"create Torch binPath=\"{Assembly.GetExecutingAssembly().Location} {runArgs}\"",
             *      CreateNoWindow = true,
             *      UseShellExecute = true,
             *      Verb = "runas"
             *  };
             *  Process.Start(startInfo).WaitForExit();
             *  _log.Info("Torch service installed");
             *  return;
             * }
             *
             * if (options.UninstallService)
             * {
             *  _log.Info("Uninstalling Torch service");
             *  var startInfo = new ProcessStartInfo
             *  {
             *      FileName = "sc.exe",
             *      Arguments = "delete Torch",
             *      CreateNoWindow = true,
             *      UseShellExecute = true,
             *      Verb = "runas"
             *  };
             *  Process.Start(startInfo).WaitForExit();
             *  _log.Info("Torch service uninstalled");
             *  return;
             * }*/

            _server = new TorchServer(options);
            _server.Init();
            if (gui)
            {
                var ui = new TorchUI((TorchServer)_server);
                ui.LoadConfig(options);
                ui.ShowDialog();
            }
            else
            {
                _server.Start();
            }
        }