aboutsummaryrefslogtreecommitdiff
path: root/src/core/manager.nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/manager.nim')
-rw-r--r--src/core/manager.nim89
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")
Directive (EU) 2019/790, Article 4(3); all rights regarding Text and Data Mining (TDM) are reserved.