Skip to content

Commit 77bd2ea

Browse files
committed
Update:
- Tentative fix for macOS sometimes having corrupt redub binary - Fix for dub.selections.json for dub usage - Fix for dub.selections.json generation (do not include subpackages on it)
1 parent 0e4914d commit 77bd2ea

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

dub.selections.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
"adv_diff": {"path": "adv_diff"},
55
"hipjson": {"path": "hipjson"},
66
"d-segmented-hashmap": "1.0.5",
7-
"arsd-official:terminal": "12.0.0",
8-
"arsd-official:core": "12.0.0",
7+
"arsd-official": "12.0.0",
98
"colorize": {"path": "colorize"},
109
"d_dependencies": {"path": "d_dependencies"},
1110
"dub_sdl_to_json": {"path": "dub_sdl_to_json"},

replace_redub.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ OLD_REDUB=$3
55
while ps -p $PARENT_PID > /dev/null; do
66
sleep 1
77
done
8-
cp -f $NEW_REDUB $OLD_REDUB
9-
chmod +x $OLD_REDUB #Old is now the now one
8+
cp $NEW_REDUB $OLD_REDUB.tmp
9+
chmod +x $OLD_REDUB.tmp #Old is now the now one
10+
mv -f $OLD_REDUB.tmp $OLD_REDUB

source/redub/api.d

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -307,19 +307,27 @@ void createSelectionsFile(ProjectNode tree)
307307
dubSelections~= "{\n\t\"fileVersion\": 1,\n\t\"versions\": {";
308308

309309
bool isFirst = true;
310+
bool[string] usedPackages;
310311

311312
foreach(ProjectNode node; tree.collapse)
312313
{
313314
if(node is tree)
314315
continue;
315-
if(!isFirst) dubSelections~=",";
316-
isFirst = false;
317-
auto req = node.requirements;
318-
dubSelections~= "\n\t\t\""~node.name~"\": ";
319-
if(req.version_.length != 0)
320-
dubSelections~= "\""~req.version_~"\"";
321-
else
322-
dubSelections~= " {\"path\": \""~replace(relativePath(req.cfg.workingDir, tree.requirements.cfg.workingDir), "\\", "\\\\")~"\"}";
316+
string pkgName = node.name;
317+
getSubPackage(pkgName);
318+
if(pkgName !in usedPackages)
319+
{
320+
if(!isFirst) dubSelections~=",";
321+
isFirst = false;
322+
auto req = node.requirements;
323+
dubSelections~= "\n\t\t\""~pkgName~"\": ";
324+
if(req.version_.length != 0)
325+
dubSelections~= "\""~req.version_~"\"";
326+
else
327+
dubSelections~= " {\"path\": \""~replace(relativePath(req.cfg.workingDir, tree.requirements.cfg.workingDir), "\\", "\\\\")~"\"}";
328+
usedPackages[pkgName] = true;
329+
}
330+
323331
}
324332

325333
dubSelections~= "\n\t}\n}";

0 commit comments

Comments
 (0)