koch.nim: critical fix for the tar.xz installations

This commit is contained in:
Andreas Rumpf
2017-01-07 10:39:00 +01:00
parent 86c73cdfc2
commit 5ce414141e

View File

@@ -188,21 +188,25 @@ proc buildNimble(latest: bool) =
# here so that it cannot cause problems (nimble bug #306):
if dirExists("bin/nimblepkg"):
removeDir("bin/nimblepkg")
# if koch is used for a tar.xz, build the dist/nimble we shipped
# with the tarball:
var installDir = "dist/nimble"
if not dirExists("dist/nimble/.git"):
# if dist/nimble exist, but is not a git repo, don't mess with it:
if dirExists(installDir):
var id = 0
while dirExists("dist/nimble" & $id):
inc id
installDir = "dist/nimble" & $id
exec("git clone https://github.com/nim-lang/nimble.git " & installDir)
withDir(installDir):
if latest:
exec("git checkout -f master")
else:
exec("git checkout -f stable")
exec("git pull")
if not latest and dirExists(installDir) and not dirExists("dist/nimble/.git"):
discard "don't do the git dance"
else:
if not dirExists("dist/nimble/.git"):
if dirExists(installDir):
var id = 0
while dirExists("dist/nimble" & $id):
inc id
installDir = "dist/nimble" & $id
exec("git clone https://github.com/nim-lang/nimble.git " & installDir)
withDir(installDir):
if latest:
exec("git checkout -f master")
else:
exec("git checkout -f stable")
exec("git pull")
nimexec("c --noNimblePath -p:compiler " & installDir / "src/nimble.nim")
copyExe(installDir / "src/nimble".exe, "bin/nimble".exe)