This repository was archived by the owner on Jan 2, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathember_build.py
More file actions
61 lines (45 loc) · 1.9 KB
/
ember_build.py
File metadata and controls
61 lines (45 loc) · 1.9 KB
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
import logging
import os
import re
import argparse
from ember import EmberBuild
def ember_project_type(path_to_app):
"""
Check that path_to_app is a valid ember application.
"""
# go back one folder from path_to_app
app_path = os.path.normpath(os.path.join(os.path.dirname(__file__), path_to_app, '..'))
if not os.path.isfile(os.path.join(app_path, 'index.html')) or not os.path.isfile(os.path.join(app_path, 'core.js')):
raise argparse.ArgumentTypeError('project %s is not a valid Ember application' % path_to_app)
return path_to_app
def build_type(build_type):
"""
Check the build type is valid
"""
if re.match(r'^(dev|live)$', build_type) is None:
raise argparse.ArgumentTypeError('invalid build type supplied. May only be live or dev')
return build_type
def verbose_type(verbosity):
"""
Clamp the verbosity to a valid value
"""
levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG]
verbosity = int(verbosity)
if verbosity > len(levels) - 1:
verbosity = levels[-1]
elif verbosity < 0 or verbosity == None:
verbosity = levels[0]
else:
verbosity = levels[verbosity]
return verbosity
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('project', type=ember_project_type, help="Path to Ember project you want to compile")
parser.add_argument('-t', '--type', type=build_type, metavar="dev", help="Change Ember build type (live or dev)", default=0)
parser.add_argument('-v', type=verbose_type, metavar='', help="Change output verbosity (0-2) defaults to 0")
args = parser.parse_args()
if not args.v:
args.v = logging.ERROR
# enable logging to console setting the log level to the verbosity value
logging.basicConfig(level=args.v, format='[%(levelname)s] %(message)s')
EmberBuild(args.project, args.type).build_app()