Ver Fonte

Work around issue with dub and symlinks from zipfiles.

Steven Schveighoffer há 3 anos atrás
pai
commit
453bb8cd47
1 ficheiros alterados com 11 adições e 1 exclusões
  1. 11 1
      install/source/app.d

+ 11 - 1
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);