public override void DoJob() { Application.RunningConfiguration = ConfigRepo.GetRunning(); }
private static void Main() { var resetEvent = new AutoResetEvent(initialState: false); Console.CancelKeyPress += (s, e) => { e.Cancel = true; resetEvent.Set(); }; STOPWATCH = new Stopwatch(); STOPWATCH.Start(); ConsoleLogger.Log($"[{KeyName}] start"); Scheduler = new JobManager(); OsReadAndWrite(); RemoveLimits(); CreateWorkingDirectories(); MountWorkingDirectories(); OverlayWatcher(); CurrentConfiguration = ConfigRepo.Read(); if (CurrentConfiguration == null) { CurrentConfiguration = new MachineConfig(); CurrentConfiguration.Host.MachineUid = Guid.NewGuid(); CurrentConfiguration.Host.SerialNumber = Guid.NewGuid(); CurrentConfiguration.Host.PartNumber = Guid.NewGuid(); CurrentConfiguration.Users.ApplicativeUsers = new ApplicativeUser[] { new ApplicativeUser() { Active = true, Type = AuthenticationType.simple, Id = "master", Claims = new[] { SHA.Generate("master") } } }; CurrentConfiguration.Network = Default.Network(); CurrentConfiguration.NsSwitch = new NsSwitch() { Aliases = "files", Ethers = "db files", Group = "files winbind", Hosts = "files mdns_minimal [NOTFOUND=return] resolve dns", Netgroup = "files", Networks = "files dns", Passwd = "files winbind", Protocols = "db files", Rpc = "db files", Services = "db files", Shadow = "compat", Netmasks = "files", Bootparams = "files", Automount = "files" }; CurrentConfiguration.Services.Ssh.AuthorizedKey = Ssh.GetAuthorizedKey(); ConfigRepo.Save(); } if (RunningConfiguration == null) { ConsoleLogger.Log("[conf] get running"); //RunningConfiguration = ConfigRepo.GetRunning(); RunningConfiguration = new MachineStatus(); } if (Checklist == null) { Checklist = new MachineStatusChecklistModel(); } Time(); CheckUnitsLocation(); Mounts(); Hostname(); GenerateSecret(); License(); SetServices(); SetModules(); SetParameters(); Users(); Dns(); Network(); Ntpd(); Firewall(); Dhcpd(); Bind(); ApplySetupConfiguration(); Nginx(); ManageSsh(); Samba(); Syslog(); StorageZfs(); Ca(); Apps(); Rsync(); Tor(); ManageVirsh(); ManageCluster(); DirectoryWatchers(); CheckApplicationFileAcls(); var port = CurrentConfiguration.WebService.Port; var uri = $"http://localhost:{port}/"; var webService = new NancyHost(new Uri(uri)); webService.Start(); StaticConfiguration.DisableErrorTraces = false; ConsoleLogger.Log($"[{KeyName}] web service is listening on port {port}"); #region [ Working ] PrepareGuiService(); StartRssdp(); LaunchJobs(); Test(); #endregion ConsoleLogger.Log($"[{KeyName}] loaded in: {STOPWATCH.ElapsedMilliseconds} ms"); resetEvent.WaitOne(); webService.Stop(); STOPWATCH.Stop(); ConsoleLogger.Log($"[{KeyName}] stop"); Environment.Exit(0); }