diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2013-08-24 01:51:47 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2013-08-24 02:13:56 +0400 |
commit | e8890b157dd3f6b078ca73ec7c61b5da563138a4 (patch) | |
tree | e2eefd06121ff8e3dcb7ff8fa2d82a77b8677626 /main | |
parent | 812408e564c6ef805566394ef864e95cf47baca7 (diff) |
[Core] Add method for getting addin registry location
Diffstat (limited to 'main')
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs index 5cee6fce42..66a5162dad 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs @@ -53,10 +53,27 @@ namespace MonoDevelop.Core static ApplicationService applicationService; static bool initialized; + public static void GetAddinRegistryLocation (out string configDir, out string addinsDir, out string databaseDir) + { + //provides a development-time way to load addins that are being developed in a asperate solution + var devConfigDir = Environment.GetEnvironmentVariable ("MONODEVELOP_DEV_CONFIG"); + if (devConfigDir != null && devConfigDir.Length == 0) + devConfigDir = null; + + var devAddinDir = Environment.GetEnvironmentVariable ("MONODEVELOP_DEV_ADDINS"); + if (devAddinDir != null && devAddinDir.Length == 0) + devAddinDir = null; + + configDir = devConfigDir ?? UserProfile.Current.ConfigDir; + addinsDir = devAddinDir ?? UserProfile.Current.LocalInstallDir.Combine ("Addins"); + databaseDir = devAddinDir ?? UserProfile.Current.CacheDir; + } + public static void Initialize (bool updateAddinRegistry) { if (initialized) return; + Counters.RuntimeInitialization.BeginTiming (); SetupInstrumentation (); @@ -79,22 +96,13 @@ namespace MonoDevelop.Core AddinManager.AddinLoadError += OnLoadError; AddinManager.AddinLoaded += OnLoad; AddinManager.AddinUnloaded += OnUnload; - - //provides a development-time way to load addins that are being developed in a asperate solution - var devConfigDir = Environment.GetEnvironmentVariable ("MONODEVELOP_DEV_CONFIG"); - if (devConfigDir != null && devConfigDir.Length == 0) - devConfigDir = null; - var devAddinDir = Environment.GetEnvironmentVariable ("MONODEVELOP_DEV_ADDINS"); - if (devAddinDir != null && devAddinDir.Length == 0) - devAddinDir = null; - try { Counters.RuntimeInitialization.Trace ("Initializing Addin Manager"); - AddinManager.Initialize ( - devConfigDir ?? UserProfile.Current.ConfigDir, - devAddinDir ?? UserProfile.Current.LocalInstallDir.Combine ("Addins"), - devAddinDir ?? UserProfile.Current.CacheDir); + + string configDir, addinsDir, databaseDir; + GetAddinRegistryLocation (out configDir, out addinsDir, out databaseDir); + AddinManager.Initialize (configDir, addinsDir, databaseDir); AddinManager.InitializeDefaultLocalizer (new DefaultAddinLocalizer ()); if (updateAddinRegistry) |