mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
23 lines
744 B
Nim
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}"
|