Files
Nim/tools/officialpackages.nim
ringabout 9ba07edb2e build the documentation of official packages (#20986)
* remove db stuffs

* remove punycode

* remove

* fixes script

* add cloner

* patches

* disable

* patch

* fixes external packages

* disable two packages

* preview documentation build

* try again

* fixes URL

* fixes a bug

* simplify

* fixes documentaion

* fixes

* Apply suggestions from code review
2022-12-06 22:37:16 +08:00

22 lines
810 B
Nim

import std/[strformat, paths, dirs, envvars]
from std/os import execShellCmd
proc exec*(cmd: string, errorcode: int = QuitFailure, additionalPath = "") =
let prevPath = getEnv("PATH")
if additionalPath.len > 0:
var absolute = Path(additionalPath)
if not absolute.isAbsolute:
absolute = getCurrentDir() / absolute
echo("Adding to $PATH: ", string(absolute))
putEnv("PATH", (if prevPath.len > 0: prevPath & PathSep else: "") & string(absolute))
echo(cmd)
if execShellCmd(cmd) != 0: quit("FAILURE", errorcode)
putEnv("PATH", prevPath)
proc gitClonePackages*(names: seq[string]) =
if not dirExists(Path"pkgs"):
createDir(Path"pkgs")
for name in names:
if not dirExists(Path"pkgs" / Path(name)):
exec fmt"git clone https://github.com/nim-lang/{name} pkgs/{name}"