From 0e8c581e72c056f865483054916bb8efeddb39f6 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 30 Nov 2013 15:26:44 +0000 Subject: [PATCH] Fixes #17 --- babel.nim | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/babel.nim b/babel.nim index 3689ac5..b9138fe 100644 --- a/babel.nim +++ b/babel.nim @@ -295,12 +295,15 @@ proc installFromDir(dir: string, latest: bool, options: TOptions): string = let currentPerms = getFilePermissions(pkgDestDir / bin) setFilePermissions(pkgDestDir / bin, currentPerms + {fpUserExec}) + let cleanBin = bin.extractFilename when defined(unix): - if existsFile(binDir / bin): removeFile(binDir / bin) - echo("Creating symlink: ", pkgDestDir / bin, " -> ", binDir / bin) - doCmd("ln -s \"" & pkgDestDir / bin & "\" " & binDir / bin) + # TODO: Verify that we are removing an old bin of this package, not + # some other package's binary! + if existsFile(binDir / bin): removeFile(binDir / cleanBin) + echo("Creating symlink: ", pkgDestDir / bin, " -> ", binDir / cleanBin) + doCmd("ln -s \"" & pkgDestDir / bin & "\" " & binDir / cleanBin) elif defined(windows): - let dest = binDir / bin.changeFileExt("bat") + let dest = binDir / cleanBin.changeFileExt("bat") echo("Creating stub: ", pkgDestDir / bin, " -> ", dest) writeFile(dest, "\"" & pkgDestDir / bin & "\" %*\n") else: