diff options
Diffstat (limited to '')
| -rw-r--r-- | src/core/manager.nim | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/src/core/manager.nim b/src/core/manager.nim index 106c511..e69de29 100644 --- a/src/core/manager.nim +++ b/src/core/manager.nim @@ -1,89 +0,0 @@ -import std / [ - os, - osproc, - hashes, - strformat -] - -proc runCommand*( - command: string, - workingDir: string = "" -): (string, int) = - echo "-> {command} (workingDir: {workingDir})".fmt - let (output, code) = execCmdEx( - command=command, - workingDir=workingDir - ) - result = (output, code) - -proc ensureDir*(path: string) = - if not dirExists(path): - createDir(path) - -proc readConfigFile*(configPath: string): string = - if fileExists(configPath): - result = readFile(configPath) - else: - result = "" - -proc cloneSource*( - repoURL: string, - destinationDir: string -) = - if dirExists(destinationDir): - echo "Repository already exists at {destinationDir}".fmt - echo "Pulling..." - let (output, code) = runCommand( - command="git pull", - workingDir=destinationDir - ) - echo output - else: - echo "Cloning from {repoURL}...".fmt - let (output, code) = runCommand( - command="git clone {repoURL} {destinationDir}".fmt - ) - echo output - -proc fetchTags*( - destinationDir: string -) = - let (output, code) = runCommand( - command="git fetch --tags --force", - workingDir=destinationDir - ) - echo output - - -proc resolveTag*( - destinationDir: string, - pinnedTag: string = "" -): string = - ## if pinnedTag is defined, we use that; - ## otherwise we fall back to newest tag - if pinnedTag.len > 0: - result = pinnedTag - let (output, code) = runCommand( - command="git rev-parse --verify {pinnedTag}".fmt, - workingDir=destinationDir - ) - echo output - if code != 0: - # if it fails, we try to fetch the tag - # just in case - fetchTags(destinationDir) - let (newOutput, newCode) = runCommand( - "git rev-parse --verify {pinnedTag}".fmt, - workingDir=destinationdir - ) - echo newOutput - if newCode != 0: - quit("Pinned tag {pinnedTag} not found in repo at {destDir}.") - else: - let (output, code) = runCommand( - command="git describe --tags --abbrev=0", - workingDir=destinationDir - ) - result = output - if code != 0: - quit("There seem to be no releases available from this software") |
