summary refs log tree commit diff stats
path: root/koch.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-01-07 10:39:00 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-01-07 13:27:16 +0100
commit5ce414141ed2141591006da4b0261d51d9be32d6 (patch)
tree407d6e5216ea81300c5bab9895580c57e0aaec20 /koch.nim
parent86c73cdfc25ae6e0eff2427ac69e7ab729376ac5 (diff)
downloadNim-5ce414141ed2141591006da4b0261d51d9be32d6.tar.gz
koch.nim: critical fix for the tar.xz installations
Diffstat (limited to 'koch.nim')
-rw-r--r--koch.nim32
1 files changed, 18 insertions, 14 deletions
diff --git a/koch.nim b/koch.nim
index f117f136c..d5b756420 100644
--- a/koch.nim
+++ b/koch.nim
@@ -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)