-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathgenerate-app-boilerplate.py
57 lines (46 loc) · 1.32 KB
/
generate-app-boilerplate.py
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
# Script to quickly generator boilerplate code for new apps
# usage: python generate-app-boilerplate.py --name=<appname>
# Made with python 2.7.12
import sys
import os
import errno
appname = None
for arg in sys.argv:
if arg[:7] == "--name=":
appname = arg[7:]
if appname == None:
print("ERROR: Must provide app name (--name=)")
exit()
jstemplate = """const App = require("../../core/App");
const Window = require("../../core/Window");
class {appname}App extends App {{
constructor() {{
super("{appname}");
}}
}}
class {appname}Window extends Window {{
constructor(options) {{ // eslint-disable-line no-useless-constructor
super(options);
}}
openIn(windowArea) {{
super.openIn(windowArea);
}}
}}
module.exports = {{
{appname}App: {appname}App,
{appname}Window: {appname}Window
}};
"""
render = jstemplate.format(appname=appname)
jsfilepath = os.getcwd() + "/apps/" + appname + "/index.js"
htmlfilepath = os.getcwd() + "/apps/" + appname + "/index.html"
if not os.path.isdir(os.path.dirname(jsfilepath)):
try:
os.makedirs(os.path.dirname(jsfilepath))
except OSError as exc:
if exc.errno != errno.EEXIST:
raise
with open(jsfilepath, "w") as f:
f.write(render)
with open(htmlfilepath, "w") as f:
f.write("<p>Hello world!</p>")