public void Start(string[] commandLineArgs) { Log4NetConfig.Setup(); var banner = new StringBuilder(); banner.AppendLine(@" ______ __ __ "); banner.AppendLine(@"| __ \.-----.-----.| |_.-----.| |_.----.---.-.-----.-----.-----.----."); banner.AppendLine(@"| __ <| _ | _ || _|__ --|| _| _| _ | _ | _ | -__| _|"); banner.AppendLine(@"|______/|_____|_____||____|_____||____|__| |___._| __| __|_____|__| "); banner.AppendLine(@" |__| |__| "); banner.AppendLine(@" "); var logging = new LoggingOrchestrator(); logging.InitializeLogging <Log4NetLog>("Main", banner.ToString()); GlobalExceptionHandlers.WireUp(); System.Console.OutputEncoding = Encoding.UTF8; var environment = new EnvironmentFacade(Assembly.GetExecutingAssembly()); var appSettings = ConfigurationParser.Parse(commandLineArgs, ConfigurationManager.AppSettings); logging.LogUsefulInformation(environment, appSettings); var container = InitializeContainer(appSettings); _disposableBag.Add(container); this.Log().Debug($"Finished bootstrapping {environment.GetProductName()}."); // Kick off long running services var orchestrator = container.Resolve <LongRunningServiceOrchestrator>(); orchestrator.StartLongRunningServices() .ContinueWith(_ => { this.Log().Info($"All long running services are started."); // This code will listen to console key presses and execute the code // associated with it if (Environment.UserInteractive) { this.Log().Debug($"Interactive console mode detected."); var commandProcessor = container.Resolve <ConsoleCommandOrchestrator>(); commandProcessor.StartUp(); } }); }
static void Main(string[] args) { HostFactory.Run(cfg => { cfg.Service <Bootstrapper>(s => { s.ConstructUsing(() => new Bootstrapper()); s.WhenStarted(x => x.Start(args)); s.WhenStopped(x => x.Stop()); }); cfg.OnException(ex => GlobalExceptionHandlers.OnException(ex, "Windows service")); cfg.SetServiceName("bootstrapping-topshelf"); cfg.SetDescription("Example Bootstrapping TopShelf App"); }); }
public static void Start(StartupContext startupContext, IUserAlert userAlert, Action <IContainer> startCallback = null) { LogTargets.Register(startupContext, false, true); try { GlobalExceptionHandlers.Register(); IgnoreCertErrorPolicy.Register(); Logger.Info("Starting NzbDrone - {0} - Version {1}", Assembly.GetCallingAssembly().Location, Assembly.GetExecutingAssembly().GetName().Version); if (!PlatformValidation.IsValidate(userAlert)) { throw new TerminateApplicationException("Missing system requirements"); } _container = MainAppContainerBuilder.BuildContainer(startupContext); _container.Resolve <IAppFolderFactory>().Register(); _container.Resolve <IProvidePidFile>().Write(); var appMode = GetApplicationMode(startupContext); Start(appMode, startupContext); if (startCallback != null) { startCallback(_container); } else { SpinToExit(appMode); } } catch (TerminateApplicationException e) { Logger.Info(e.Message); LogManager.Configuration = null; } }
public static IContainer Start(StartupArguments args, IUserAlert userAlert) { var logger = NzbDroneLogger.GetLogger(); GlobalExceptionHandlers.Register(); IgnoreCertErrorPolicy.Register(); logger.Info("Starting NzbDrone Console. Version {0}", Assembly.GetExecutingAssembly().GetName().Version); if (!PlatformValidation.IsValidate(userAlert)) { throw new TerminateApplicationException(); } var container = MainAppContainerBuilder.BuildContainer(args); DbFactory.RegisterDatabase(container); container.Resolve <Router>().Route(); return(container); }
public static void Main(string[] args) { try { var startupArgument = new StartupContext(args); LogTargets.Register(startupArgument, true, true); Console.WriteLine("Starting NzbDrone Update Client"); IgnoreCertErrorPolicy.Register(); GlobalExceptionHandlers.Register(); _container = UpdateContainerBuilder.Build(startupArgument); logger.Info("Updating NzbDrone to version {0}", BuildInfo.Version); _container.Resolve <UpdateApp>().Start(args); } catch (Exception e) { logger.FatalException("An error has occurred while applying update package.", e); } }