diff --git a/source/dub/dub.d b/source/dub/dub.d index 82927ec..65fd7ee 100644 --- a/source/dub/dub.d +++ b/source/dub/dub.d @@ -82,20 +82,7 @@ m_rootPath = Path(root_path); if (!m_rootPath.absolute) m_rootPath = Path(getcwd()) ~ m_rootPath; - version(Windows){ - m_systemDubPath = Path(environment.get("ProgramData")) ~ "dub/"; - m_userDubPath = Path(environment.get("APPDATA")) ~ "dub/"; - m_tempPath = Path(environment.get("TEMP")); - } else version(Posix){ - m_systemDubPath = Path("/var/lib/dub/"); - m_userDubPath = Path(environment.get("HOME")) ~ ".dub/"; - if(!m_userDubPath.absolute) - m_userDubPath = Path(getcwd()) ~ m_userDubPath; - m_tempPath = Path("/tmp"); - } - - m_userConfig = jsonFromFile(m_userDubPath ~ "settings.json", true); - m_systemConfig = jsonFromFile(m_systemDubPath ~ "settings.json", true); + this(); PackageSupplier[] ps = additional_package_suppliers; @@ -128,11 +115,30 @@ /// Initializes DUB with only a single search path this(Path override_path) { + this(); m_overrideSearchPath = override_path; m_packageManager = new PackageManager(Path(), Path(), false); updatePackageSearchPath(); } + private this() + { + version(Windows){ + m_systemDubPath = Path(environment.get("ProgramData")) ~ "dub/"; + m_userDubPath = Path(environment.get("APPDATA")) ~ "dub/"; + m_tempPath = Path(environment.get("TEMP")); + } else version(Posix){ + m_systemDubPath = Path("/var/lib/dub/"); + m_userDubPath = Path(environment.get("HOME")) ~ ".dub/"; + if(!m_userDubPath.absolute) + m_userDubPath = Path(getcwd()) ~ m_userDubPath; + m_tempPath = Path("/tmp"); + } + + m_userConfig = jsonFromFile(m_userDubPath ~ "settings.json", true); + m_systemConfig = jsonFromFile(m_systemDubPath ~ "settings.json", true); + } + /// Perform cleanup and persist caches to disk void shutdown() {