diff --git a/install/source/app.d b/install/source/app.d index 4676af9..8d9320d 100644 --- a/install/source/app.d +++ b/install/source/app.d @@ -6,6 +6,7 @@ import std.system; import std.format; import std.conv; import std.process; +import std.string; import iopipe.json.serialize; import iopipe.json.parser; import std.exception; @@ -78,7 +79,7 @@ int main() writeln("Copying library files from ", libpath); foreach(ent; dirEntries(libpath, SpanMode.shallow)) { - auto newLoc = buildPath(".", ent.name.baseName); + auto newLoc = buildPath(".", ent.name.baseName(".lnk")); version(Posix) { if(ent.isSymlink) @@ -89,6 +90,15 @@ int main() symlink(origln, newLoc); continue; } + else if(ent.name.endsWith(".lnk")) + { + // dub workaround. This is really a symlink but wasn't + // properly downloaded by dub. + auto origln = cast(char[])read(ent.name); + writefln("Creating symlink %s -> %s", newLoc, origln); + symlink(origln, newLoc); + continue; + } } writeln("Installing library file ", newLoc); copy(ent.name, newLoc, PreserveAttributes.yes);