svgui/pyjs/lib/sys.py
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Fri, 15 Jun 2018 16:12:50 +0300
changeset 2184 bbd2364fbf71
parent 1879 4d81c3bcac82
permissions -rw-r--r--
Add argument to set list of source files to check

This is necessary, in case you want to use docker run in pretxncommit
Mercurial hook. Unfortunately for some reason if hg running in
container can't find just created commit defined by $HG_NODE. And it
throws error 'unknown revision'.

Here is example for hgrc.

[hooks]
pretxncommit.linter = hg status -m -n -a -n -I '**.py' --change $HG_NODE > files.lst && docker run --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --files-to-check files.lst
# the platform name (PyV8, smjs, Mozilla, IE6, Opera, Safari etc.)
platform = ''  # to be updated by app, on compile

# a dictionary of module override names (platform-specific)
overrides = {}  # to be updated by app, on compile

# the remote path for loading modules
loadpath = None

stacktrace = None

appname = None


def setloadpath(lp):
    global loadpath
    loadpath = lp


def setappname(an):
    global appname
    appname = an


def getloadpath():
    return loadpath


def addoverride(module_name, path):
    overrides[module_name] = path


def addstack(linedebug):
    JS("""
        if (pyjslib.bool((sys.stacktrace === null))) {
            sys.stacktrace = new pyjslib.List([]);
        }
        sys.stacktrace.append(linedebug);
    """)


def popstack():
    JS("""
        sys.stacktrace.pop()
    """)


def printstack():
    JS("""
        var res = '';

        var __l = sys.stacktrace.__iter__();
        try {
            while (true) {
                var l = __l.next();
                res +=  ( l + '\\n' ) ;
            }
        } catch (e) {
            if (e != pyjslib.StopIteration) {
                throw e;
            }
        }

        return res;
    """)