public bool LoadConfig() { if (Environment.GetEnvironmentVariable(configEnv) != null) { _configFullPath = Environment.GetEnvironmentVariable(configEnv); _isConfigFound = true; } if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), configFileName))) { _configFullPath = Path.Combine(Directory.GetCurrentDirectory(), configFileName); _isConfigFound = true; } if (!_isConfigFound) { _configFullPath = Path.Combine(Directory.GetCurrentDirectory(), configFileName); } if (_neonManager.IsRunningInDocker) { _configFullPath = Path.Combine("/argon", configFileName); if (File.Exists(_configFullPath)) { _isConfigFound = true; } } _logger.Information($"Loading config [is Docker = {_neonManager.IsRunningInDocker}] config found: {_isConfigFound}"); if (!_isConfigFound) { _config = new ArgonConfig(); SaveConfig(); } else { DeserializeConfig(); } CheckEnvVariables(); if (_neonManager.IsRunningInDocker) { _config.EngineConfig.HomeDirectory = "/argon"; } _containerBuilder.RegisterInstance(_config); SaveConfig(); return(true); }
public IServiceProvider ConfigureServices(IServiceCollection services) { _config = Program.ArgonManager.Config; services.AddControllers().AddControllersAsServices(); services.AddOpenApiDocument(); services.AddWebSockets(options => { options.KeepAliveInterval = TimeSpan.FromSeconds(120); options.ReceiveBufferSize = 4 * 1024; }); services.AddCors(c => { c.AddPolicy("AllowOrigin", options => { options .AllowAnyHeader() .AllowAnyOrigin(); }); }); services.AddSingleton(typeof(ILogger <>), typeof(LoggerEx <>)); services.AddMediatR(AssemblyUtils.GetAppAssemblies().ToArray()); services.AddHttpClient(); services.AddWebSocketManager(); services.AddMvc().AddNewtonsoftJson(jo => { jo.SerializerSettings.ContractResolver = new DefaultContractResolver() { NamingStrategy = new SnakeCaseNamingStrategy() }; }); Program.ArgonManager.ContainerBuilder.Populate(services); Program.ArgonManager.Init(); ApplicationContainer = Program.ArgonManager.Build(); return(new AutofacServiceProvider(ApplicationContainer)); }
private void DeserializeConfig() { _config = File.ReadAllText(_configFullPath).FromYaml <ArgonConfig>(); }
public FileSystemManager(ILogger logger, ArgonConfig neonConfig, ISecretKeyManager secretKeyManager) { _logger = logger.ForContext <FileSystemManager>(); _rootDirectory = neonConfig.EngineConfig.HomeDirectory; _secretKeyManager = secretKeyManager; }