aboutsummaryrefslogtreecommitdiff
path: root/tests/nimgentest.nims
blob: f7e5aee786862917c20ee3914744d12b58124708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import distros, ospaths, strutils

var
  full = true
  comps = @["libsvm", "nim7z", "nimarchive", "nimbass", #"nimbigwig",
            "nimclipboard", "nimfastText", "nimfuzz", "nimmonocypher",
            "nimnuklear", "nimpcre", "nimrax", "nimssl", "nimssh2",
            "nimtess2"
          ]

if detectOs(Windows):
  comps.add("nimkerberos")
  comps.add("nimzbar")

if paramCount() > 2:
  for i in 3 .. paramCount():
    if paramStr(i) == "--full":
      full = true
    elif paramStr(i).len() > 10 and "--comps=" in paramStr(i)[0 ..< 8]:
      comps = paramStr(i)[8 .. ^1].split(",")

for comp in comps:
  if not dirExists(".."/comp):
    withDir(".."):
      exec "git clone --depth=1 https://github.com/genotrance/" & comp

  exec "nimble uninstall -y " & comp, "", ""
  withDir(".."/comp):
    exec "git pull"

    if full:
      rmDir(comp)

      exec "nimble install -y"
      exec "nimble test"

    exec "nimble install -y"
    exec "nimble test"

  if dirExists("web"/comp):
    rmDir("web"/comp)

  mkDir("web"/comp)
  for file in listFiles(".."/comp/comp) & listFiles(".."/comp):
    if file.splitFile().ext == ".nim":
      cpFile(file, "web"/comp/extractFilename(file))

  cpFile("web"/"nimdoc.cfg", "web"/comp/"nimdoc.cfg")
  withDir("web"/comp):
    for file in listFiles("."):
      if file.splitFile().ext == ".nim":
        exec "nim doc --git.url:. --index:on -o:" & file.changeFileExt("html") & " " & file
        exec "pygmentize -f html -O full,linenos=1,anchorlinenos=True,lineanchors=L,style=vs -o " & file & ".html " & file

    exec "nim buildIndex -o:index.html ."
  rmFile("web"/comp/"nimdoc.cfg")