private void EnsureLoaded() { if (_aliases != null) { return; } if (!_paths.Exists(_paths.AliasesFile)) { _aliases = new AliasModel(); return; } string sourcesText = _paths.ReadAllText(_paths.AliasesFile, "{}"); JObject parsed = JObject.Parse(sourcesText); IReadOnlyDictionary <string, IReadOnlyList <string> > commandAliases = parsed.ToStringListDictionary(StringComparer.OrdinalIgnoreCase, "CommandAliases"); _aliases = new AliasModel(commandAliases); }
private void EnsureLoaded() { lock (_settingsLock) { if (_loaded) { return; } string?userSettings = null; using (Timing.Over(_environmentSettings.Host, "Read settings")) { for (int i = 0; i < MaxLoadAttempts; ++i) { try { userSettings = _paths.ReadAllText(_paths.SettingsFile, "{}"); break; } catch (IOException) { if (i == MaxLoadAttempts - 1) { throw; } Task.Delay(2).Wait(); } } } JObject parsed; using (Timing.Over(_environmentSettings.Host, "Parse settings")) { try { parsed = JObject.Parse(userSettings); } catch (Exception ex) { throw new EngineInitializationException("Error parsing the user settings file", "Settings File", ex); } } using (Timing.Over(_environmentSettings.Host, "Deserialize user settings")) { _userSettings = new SettingsStore(parsed); } using (Timing.Over(_environmentSettings.Host, "Init probing paths")) { if (_userSettings.ProbingPaths.Count == 0) { _userSettings.ProbingPaths.Add(_paths.Content); } } using (Timing.Over(_environmentSettings.Host, "Init Component manager")) { _componentManager = new ComponentManager(this, _userSettings); } using (Timing.Over(_environmentSettings.Host, "Init MountPoint manager")) { _mountPointManager = new MountPointManager(_environmentSettings, _componentManager); } _loaded = true; EnsureFirstRun(); } }