Files
Nim/tools/deps.nim
2020-04-03 09:10:45 +02:00

23 lines
744 B
Nim

import os, uri, strformat
proc exec(cmd: string) =
echo "deps.cmd: " & cmd
let status = execShellCmd(cmd)
doAssert status == 0, cmd
const commitHead* = "HEAD"
proc cloneDependency*(destDirBase: string, url: string, commit = commitHead, appendRepoName = true) =
let destDirBase = destDirBase.absolutePath
let p = url.parseUri.path
let name = p.splitFile.name
var destDir = destDirBase
if appendRepoName: destDir = destDir / name
let destDir2 = destDir.quoteShell
if not dirExists(destDir):
# note: old code used `destDir / .git` but that wouldn't prevent git clone
# from failing
exec fmt"git clone -q {url} {destDir2}"
exec fmt"git -C {destDir2} fetch -q"
exec fmt"git -C {destDir2} checkout -q {commit}"