-
Notifications
You must be signed in to change notification settings - Fork 0
/
riffler.py
executable file
·128 lines (91 loc) · 2.33 KB
/
riffler.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/env python
import sys
import os
import os.path
RIFFLER_FILE = os.path.realpath(__file__)
RIFFLER_PATH = os.path.dirname(RIFFLER_FILE)
CURRENT_PATH = os.path.abspath('.')
PROJECT_FILE = os.path.join(CURRENT_PATH, 'project')
# now not needed, python insert it automatic for current script
# sys.path.insert(0, RIFFLER_PATH)
from riffler import settings
sys.path.insert(0, settings.MUTANT_PATH)
from riffler.wender_builder import WenderBuilder
HELP = """
usage:
riffler debug
make debug build
riffler release
make release build
riffler create appname
create application structure for new appname project
riffle db
create database structure for current project
riffler pass
print password and encoded password
riffler cssopt
"""
def usage():
print HELP
def checkProjectExists():
if not os.path.exists(PROJECT_FILE):
print 'not found project file "%s"' % PROJECT_FILE
sys.exit(1)
def taskDebug():
taskBuild(isDebug=True)
def taskRelease():
taskBuild(isDebug=False)
def taskBuild(isDebug):
checkProjectExists()
builder = WenderBuilder()
builder.build(PROJECT_FILE, isDebug)
def taskCreate():
# check param count
if len(sys.argv) <= 2:
usage()
return
appName = sys.argv[2]
print 'task create NOT IMPLEMENTED, appName "%s"' % appName
def taskDb():
print 'task db NOT IMPLEMENTED'
def taskPass():
sys.path.insert(0, os.path.join(settings.WENDER_PATH, 'server'))
from wender.utils.crypt import genPassword, encodePassword
# if password provided
if len(sys.argv) == 3:
rawpass = sys.argv[2]
else:
rawpass = genPassword()
encpass = encodePassword(rawpass)
print 'pass: %s' % rawpass
print 'encoded: %s' % encpass
def taskCssimg():
builder = WenderBuilder()
builder.inlineImgInCss(os.path.join(CURRENT_PATH, ''))
def taskCssopt():
pass
def main():
taskMap = {
'debug': taskDebug,
'release': taskRelease,
'create': taskCreate,
'db': taskDb,
'pass': taskPass,
'cssimg': taskCssimg,
'cssopt': taskCssopt,
}
# by default use task debug
if len(sys.argv) == 1:
taskDebug()
else:
# search task
taskName = sys.argv[1]
if taskName in taskMap:
task = taskMap[taskName]
task()
# for errors show usage
else:
usage()
return 0
if __name__ == '__main__':
sys.exit(main())