Skip to content

Commit 113784a

Browse files
committed
Update: Added dub.selections.json generation for issue #40
1 parent bc73b40 commit 113784a

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

source/redub/api.d

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,35 @@ string[] getChangedBuildFiles(ProjectNode root, CompilingSession s)
186186
return buildFiles;
187187
}
188188

189+
void createSelectionsFile(ProjectNode tree)
190+
{
191+
import std.file;
192+
import std.array:appender;
193+
import std.string:replace;
194+
if(exists("dub.selections.json"))
195+
return;
196+
auto dubSelections = appender!string;
197+
dubSelections~= "{\n\t\"fileVersion\": 1,\n\t\"versions\": {";
198+
199+
bool isFirst = true;
200+
201+
foreach(ProjectNode node; tree.collapse)
202+
{
203+
if(!isFirst) dubSelections~=",";
204+
isFirst = false;
205+
auto req = node.requirements;
206+
dubSelections~= "\n\t\t\""~node.name~"\": ";
207+
if(req.version_.length != 0)
208+
dubSelections~= "\""~req.version_~"\"";
209+
else
210+
dubSelections~= " {\"path\": \""~replace(req.cfg.workingDir, "\\", "\\\\")~"\"}";
211+
}
212+
213+
dubSelections~= "\n\t}\n}";
214+
215+
std.file.write("dub.selections.json", dubSelections.data);
216+
}
217+
189218

190219
ProjectDetails buildProject(ProjectDetails d)
191220
{
@@ -209,6 +238,7 @@ ProjectDetails buildProject(ProjectDetails d)
209238
else
210239
invalidateCaches(d.tree,session, sharedFormula);
211240
ProjectNode tree = d.tree;
241+
createSelectionsFile(tree);
212242
if(d.useExistingObjFiles)
213243
tree.requirements.cfg.changedBuildFiles = getChangedBuildFiles(tree, session);
214244
///TODO: Might be reactivated if that issue shows again.

source/redub/buildapi.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import redub.package_searching.api;
88

99

1010
///vX.X.X
11-
enum RedubVersionOnly = "v1.21.8";
11+
enum RedubVersionOnly = "v1.21.9";
1212
///Redub vX.X.X
1313
enum RedubVersionShort = "Redub "~RedubVersionOnly;
1414
///Redub vX.X.X - Description

0 commit comments

Comments
 (0)