internal static void Main(string[] args) { bool svc = false; bool install = false; try { // Check for special cases. if (args.Length > 0) { string first = args[0].ToLowerInvariant(); if (Help.Contains(first)) { ConsoleUtils.PrintHelp("Apache.Ignite.exe", true); return; } if (Svc.Equals(first, StringComparison.Ordinal)) { args = RemoveFirstArg(args); svc = true; } else if (SvcInstall.Equals(first, StringComparison.Ordinal)) { args = RemoveFirstArg(args); install = true; } else if (SvcUninstall.Equals(first, StringComparison.Ordinal)) { IgniteService.Uninstall(); return; } } if (!svc) { // Pick application configuration first, command line arguments second. var allArgs = AppSettingsConfigurator.GetArgs(ConfigurationManager.AppSettings) .Concat(ArgsConfigurator.GetArgs(args)) .ToArray(); if (install) { IgniteService.DoInstall(allArgs); } else { // Load assemblies before instantiating IgniteConfiguration, // it can reference types from those assemblies. allArgs = allArgs.LoadAssemblies().ToArray(); using (var ignite = Ignition.Start(Configurator.GetConfiguration(allArgs))) { // Wait until stopped. using (var evt = new ManualResetEventSlim(false)) { ignite.Stopped += (s, a) => evt.Set(); Console.CancelKeyPress += (s, a) => evt.Set(); evt.Wait(); } } } return; } } catch (Exception e) { Console.WriteLine("ERROR: " + e); Environment.Exit(-1); } // If we are here, then this is a service call. // Use only arguments, not app.config. var cfg = Configurator.GetConfiguration(ArgsConfigurator.GetArgs(args).ToArray()); IgniteService.Run(cfg); }
/// <summary> /// Application entry point. /// </summary> internal static void Main(string[] args) { bool svc = false; bool install = false; try { // Check for special cases. if (args.Length > 0) { string first = args[0].ToLowerInvariant(); if (Help.Contains(first)) { PrintHelp(); return; } if (Svc.Equals(first)) { args = RemoveFirstArg(args); svc = true; } else if (SvcInstall.Equals(first)) { args = RemoveFirstArg(args); install = true; } else if (SvcUninstall.Equals(first)) { IgniteService.Uninstall(); return; } } if (!svc) { // Pick application configuration first, command line arguments second. var allArgs = AppSettingsConfigurator.GetArgs(ConfigurationManager.AppSettings) .Concat(ArgsConfigurator.GetArgs(args)).ToArray(); if (install) { IgniteService.DoInstall(allArgs); } else { var ignite = Ignition.Start(Configurator.GetConfiguration(allArgs)); // Wait until stopped. var evt = new ManualResetEventSlim(false); ignite.Stopped += (s, a) => evt.Set(); evt.Wait(); } return; } } catch (Exception e) { Console.WriteLine("ERROR: " + e); Environment.Exit(-1); } // If we are here, then this is a service call. // Use only arguments, not app.config. var cfg = Configurator.GetConfiguration(ArgsConfigurator.GetArgs(args).ToArray()); ServiceBase.Run(new IgniteService(cfg)); }
/// <summary> /// Application entry point. /// </summary> internal static void Main(string[] args) { IgniteConfiguration cfg; bool svc = false; bool install = false; try { // Check for special cases. if (args.Length > 0) { string first = args[0].ToLower(); if (Help.Contains(first)) { PrintHelp(); return; } if (Svc.Equals(first)) { args = RemoveFirstArg(args); svc = true; } else if (SvcInstall.Equals(first)) { args = RemoveFirstArg(args); install = true; } else if (SvcUninstall.Equals(first)) { IgniteService.Uninstall(); return; } } if (!svc) { // Pick application configuration. cfg = new IgniteConfiguration(); new AppSettingsConfigurator().Configure(cfg, ConfigurationManager.AppSettings); // Pick command line arguments. new ArgsConfigurator().Configure(cfg, args); if (install) { IgniteService.DoInstall(cfg); } else { Ignition.Start(cfg); IgniteManager.DestroyJvm(); } return; } } catch (Exception e) { Console.WriteLine("ERROR: " + e.Message); Environment.Exit(-1); } // If we are here, then this is a service call. cfg = new IgniteConfiguration(); // Use only arguments, not app.config. new ArgsConfigurator().Configure(cfg, args); ServiceBase.Run(new IgniteService(cfg)); }