summary refs log tree commit diff stats
path: root/koch.nim
diff options
context:
space:
mode:
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)