diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d index 7d6a04b..9c5067a 100644 --- a/source/dub/packagemanager.d +++ b/source/dub/packagemanager.d @@ -683,7 +683,7 @@ addPackages(*packs, pack); - writeLocalPackageList(type); + this.m_repositories[type].writeLocalPackageList(); logInfo("Registered package: %s (version: %s)", pack.name, pack.version_); return pack; @@ -706,7 +706,7 @@ *packs = (*packs)[0 .. i] ~ (*packs)[i+1 .. $]; } - writeLocalPackageList(type); + this.m_repositories[type].writeLocalPackageList(); foreach(ver, name; removed) logInfo("Deregistered package: %s (version: %s)", name, ver); @@ -716,14 +716,14 @@ void addSearchPath(NativePath path, PlacementLocation type) { m_repositories[type].searchPath ~= path; - writeLocalPackageList(type); + this.m_repositories[type].writeLocalPackageList(); } /// Removes a search path from the given type. void removeSearchPath(NativePath path, PlacementLocation type) { m_repositories[type].searchPath = m_repositories[type].searchPath.filter!(p => p != path)().array(); - writeLocalPackageList(type); + this.m_repositories[type].writeLocalPackageList(); } void refresh(bool refresh_existing_packages) @@ -827,30 +827,6 @@ return hash[].dup; } - private void writeLocalPackageList(PlacementLocation type) - { - Json[] newlist; - foreach (p; m_repositories[type].searchPath) { - auto entry = Json.emptyObject; - entry["name"] = "*"; - entry["path"] = p.toNativeString(); - newlist ~= entry; - } - - foreach (p; m_repositories[type].localPackages) { - if (p.parentPackage) continue; // do not store sub packages - auto entry = Json.emptyObject; - entry["name"] = p.name; - entry["version"] = p.version_.toString(); - entry["path"] = p.path.toNativeString(); - newlist ~= entry; - } - - NativePath path = m_repositories[type].packagePath; - if( !existsDirectory(path) ) mkdirRecurse(path.toNativeString()); - writeJsonFile(path ~ LocalPackagesFilename, Json(newlist)); - } - /// Adds the package and scans for subpackages. private void addPackages(ref Package[] dst_repos, Package pack) const { @@ -1033,6 +1009,30 @@ writeJsonFile(path ~ LocalOverridesFilename, Json(newlist)); } + private void writeLocalPackageList() + { + Json[] newlist; + foreach (p; this.searchPath) { + auto entry = Json.emptyObject; + entry["name"] = "*"; + entry["path"] = p.toNativeString(); + newlist ~= entry; + } + + foreach (p; this.localPackages) { + if (p.parentPackage) continue; // do not store sub packages + auto entry = Json.emptyObject; + entry["name"] = p.name; + entry["version"] = p.version_.toString(); + entry["path"] = p.path.toNativeString(); + newlist ~= entry; + } + + NativePath path = this.packagePath; + if( !existsDirectory(path) ) mkdirRecurse(path.toNativeString()); + writeJsonFile(path ~ LocalPackagesFilename, Json(newlist)); + } + // load locally defined packages void scanLocalPackages(bool refresh_existing_packages, PackageManager manager) {