File: run.py

package info (click to toggle)
txt2tags 3.9-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,160 kB
  • sloc: python: 3,002; sh: 45; makefile: 35
file content (80 lines) | stat: -rw-r--r-- 2,208 bytes parent folder | download | duplicates (2)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#
# txt2tags crossing marks tester (http://txt2tags.org)
# See also: ../run.py ../lib.py
#


import glob
import os
import sys

sys.path.insert(0, "..")
import lib

del sys.path[0]

# left files are generated from right ones (using smart filters)
ALIASES = {"numlist": "list", "deflist": "list", "bar2": "bar"}

# smart filters to allow source inheritance
FILTERS = {
    "deflist": [("pre", "^-( |$)", r":\1")],
    "numlist": [("pre", "^-( |$)", r"+\1")],
    "bar2": [("pre", "--", r"==")],
}


# convert FILTERS tuples to txt2tags pre/postproc rules
def addFilters(filters):
    if not filters:
        return []
    config = []
    cmdline = []
    for filter in filters:
        config.append("%%!%sproc: '%s' '%s'" % filter)
    if config:
        lib.WriteFile(lib.CONFIG_FILE, "\n".join(config))
        cmdline = ["-C", lib.CONFIG_FILE]
    return cmdline


def run():
    # test all .t2t files found
    for infile in glob.glob("*.t2t"):
        basename = infile.replace(".t2t", "")
        outfile = basename + ".html"
        if lib.initTest(basename, infile, outfile):
            cmdline = [infile]
            lib.test(cmdline, outfile)

    # extra: bar.t2t as TXT
    infile = "bar.t2t"
    basename = "bar"
    outfile = basename + ".txt"
    if lib.initTest(basename, infile, outfile):
        cmdline = ["-t", "txt", "-i", infile]
        lib.test(cmdline, outfile)

    # using smart filters, same files generate more than one output
    for alias in ALIASES:
        infile = ALIASES[alias] + ".t2t"
        outfile = alias + ".html"
        if lib.initTest(alias, infile, outfile):
            cmdline = addFilters(FILTERS.get(alias))
            cmdline.append("-H")
            cmdline.extend(["-o", outfile, infile])
            lib.test(cmdline, outfile)

    # extra: bar2.t2t as TXT
    alias = "bar2"
    infile = ALIASES[alias] + ".t2t"
    outfile = alias + ".txt"
    if lib.initTest(alias, infile, outfile):
        cmdline = addFilters(FILTERS.get(alias))
        cmdline.append("-H")
        cmdline.extend(["-t", "txt", "-o", outfile, infile])
        lib.test(cmdline, outfile)

    # clean up
    if os.path.isfile(lib.CONFIG_FILE):
        os.remove(lib.CONFIG_FILE)