Exemple #1
0
        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);
        }
Exemple #2
0
        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();
            }
        }