/// <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)); }