コード例 #1
0
        public static void InitConfig()
        {
            var configName = "Torch.cfg";
            var configPath = Path.Combine(Directory.GetCurrentDirectory(), configName);

            if (File.Exists(configName))
            {
                _log.Info($"Loading config {configPath}");
                _config = TorchConfig.LoadFrom(configPath);
            }
            else
            {
                _log.Info($"Generating default config at {configPath}");
                _config = new TorchConfig {
                    InstancePath = Path.GetFullPath("Instance")
                };
                _config.Save(configPath);
            }
        }
コード例 #2
0
        private TorchConfig InitConfig()
        {
            var configName = "Torch.cfg";
            var configPath = Path.Combine(Directory.GetCurrentDirectory(), configName);

            if (File.Exists(configName))
            {
                Log.Info($"Loading config {configPath}");
                return(TorchConfig.LoadFrom(configPath));
            }
            else
            {
                Log.Info($"Generating default config at {configPath}");
                var config = new TorchConfig {
                    InstancePath = Path.GetFullPath("Instance")
                };
                config.Save(configPath);
                return(config);
            }
        }
コード例 #3
0
        /// <inheritdoc />
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            string configName = args.Length > 0 ? args[0] : "Torch.cfg";
            var    options    = new TorchConfig("Torch");

            if (File.Exists(configName))
            {
                options = TorchConfig.LoadFrom(configName);
            }
            else
            {
                options.Save(configName);
            }

            _server = new TorchServer(options);
            _server.Init();
            _server.RunArgs = args;
            Task.Run(() => _server.Start());
        }
コード例 #4
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();
            }
        }