1 | #!/usr/bin/env python |
---|
2 | # -*- coding: utf-8 -*- |
---|
3 | |
---|
4 | from __future__ import print_function |
---|
5 | |
---|
6 | import os |
---|
7 | import sys |
---|
8 | from multiprocessing import freeze_support |
---|
9 | |
---|
10 | if hasattr(sys, 'frozen'): |
---|
11 | # py2exe |
---|
12 | path = os.path.dirname(os.path.abspath(sys.executable)) |
---|
13 | elif '__file__' in globals(): |
---|
14 | path = os.path.dirname(os.path.abspath(__file__)) |
---|
15 | else: |
---|
16 | # should never happen |
---|
17 | path = os.getcwd() |
---|
18 | |
---|
19 | # process -f (--folder) option |
---|
20 | if '-f' in sys.argv: |
---|
21 | fi = sys.argv.index('-f') |
---|
22 | elif '--folder' in sys.argv: |
---|
23 | fi = sys.argv.index('--folder') |
---|
24 | else: |
---|
25 | fi = None |
---|
26 | if fi and fi < len(sys.argv): |
---|
27 | fi += 1 |
---|
28 | folder = sys.argv[fi] |
---|
29 | if not os.path.isdir(os.path.join(folder, 'gluon')): |
---|
30 | print("%s: error: bad folder %s" % (sys.argv[0], folder), file=sys.stderr) |
---|
31 | sys.exit(1) |
---|
32 | path = sys.argv[fi] = os.path.abspath(folder) |
---|
33 | |
---|
34 | os.chdir(path) |
---|
35 | |
---|
36 | sys.path = [path] + [p for p in sys.path if not p == path] |
---|
37 | |
---|
38 | # important that this import is after the os.chdir |
---|
39 | |
---|
40 | # import gluon.import_all # NOTE: should this be uncommented for py2exe.py ? |
---|
41 | import gluon.widget |
---|
42 | |
---|
43 | if __name__ == '__main__': |
---|
44 | freeze_support() |
---|
45 | # support for sub-process coverage, |
---|
46 | # see https://coverage.readthedocs.io/en/coverage-4.3.4/subprocess.html |
---|
47 | if 'COVERAGE_PROCESS_START' in os.environ: |
---|
48 | try: |
---|
49 | import coverage |
---|
50 | coverage.process_startup() |
---|
51 | except: |
---|
52 | print('Coverage is not available') |
---|
53 | pass |
---|
54 | # start services |
---|
55 | gluon.widget.start() |
---|