owl-cli 6.103.0 → 6.104.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.eslintrc.json +2 -2
  2. package/.vscode/launch.json +22 -22
  3. package/.vscode/settings.json +2 -2
  4. package/bin/createTables.js +94 -94
  5. package/bin/deploy.js +66 -66
  6. package/bin/dsl.js +223 -223
  7. package/bin/genEvents.js +188 -188
  8. package/bin/owl-init.js +50 -50
  9. package/bin/owl.js +295 -295
  10. package/bin/owlconfig.json +16 -16
  11. package/bin/table_mysql.js +189 -189
  12. package/bin/undeploy.js +56 -56
  13. package/defaultTemplate/api/build.xml +94 -94
  14. package/defaultTemplate/api/src/about.html +12 -12
  15. package/defaultTemplate/api/src/about.jsx +11 -11
  16. package/defaultTemplate/api/src/handlers/aggs.jsx +161 -161
  17. package/defaultTemplate/api/src/handlers/batchImport.jsx +68 -68
  18. package/defaultTemplate/api/src/handlers/delete.jsx +67 -67
  19. package/defaultTemplate/api/src/handlers/export.jsx +117 -117
  20. package/defaultTemplate/api/src/handlers/exportDoc.jsx +27 -27
  21. package/defaultTemplate/api/src/handlers/exportEx.jsx +77 -77
  22. package/defaultTemplate/api/src/handlers/exportWithTemplates.jsx +50 -50
  23. package/defaultTemplate/api/src/handlers/exportZip.jsx +26 -26
  24. package/defaultTemplate/api/src/handlers/get.jsx +41 -41
  25. package/defaultTemplate/api/src/handlers/getChildren.jsx +97 -97
  26. package/defaultTemplate/api/src/handlers/getExportTaskInfo.jsx +34 -34
  27. package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
  28. package/defaultTemplate/api/src/handlers/include/checklogin.jsx +751 -751
  29. package/defaultTemplate/api/src/handlers/include/diff.jsx +315 -315
  30. package/defaultTemplate/api/src/handlers/include/util.jsx +60 -60
  31. package/defaultTemplate/api/src/handlers/list.jsx +239 -239
  32. package/defaultTemplate/api/src/handlers/reIndex.jsx +63 -63
  33. package/defaultTemplate/api/src/handlers/recovery.jsx +53 -53
  34. package/defaultTemplate/api/src/handlers/save.jsx +125 -125
  35. package/defaultTemplate/api/src/handlers/upload.jsx +72 -72
  36. package/defaultTemplate/api/src/init/indexConfigs/changeMapping.json +14 -14
  37. package/defaultTemplate/api/src/init/indexConfigs/createAliase.json +10 -10
  38. package/defaultTemplate/api/src/init/indexConfigs/createIndex.json +55 -55
  39. package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
  40. package/defaultTemplate/api/src/init/indexConfigs/reindex.json +10 -10
  41. package/defaultTemplate/api/src/init/init.jsx +25 -25
  42. package/defaultTemplate/api/src/meta.json +10 -10
  43. package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
  44. package/defaultTemplate/api/src/services/modelService.jsx +1163 -1163
  45. package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
  46. package/defaultTemplate/api/src/tasks/export.jsx +355 -355
  47. package/defaultTemplate/api/src/tasks/exportDoc.jsx +87 -87
  48. package/defaultTemplate/api/src/tasks/exportExTask.jsx +325 -325
  49. package/defaultTemplate/api/src/tasks/exportWithTemplateTask.jsx +117 -117
  50. package/defaultTemplate/api/src/tasks/exportZip.jsx +49 -49
  51. package/examples/buildProperties/build.properties +2 -2
  52. package/examples/gitignore/gitignore_example.txt +1 -1
  53. package/examples/models/product.json +52 -52
  54. package/examples/models/shop.json +71 -71
  55. package/examples/models/sku.json +254 -254
  56. package/examples/models/user.json +49 -49
  57. package/examples/owlconfig.json +13 -13
  58. package/package.json +33 -33
  59. package/todo.txt +4 -4
package/bin/owl.js CHANGED
@@ -1,295 +1,295 @@
1
- #!/usr/bin/env node
2
-
3
- const {lstatSync, readdirSync} = require('fs')
4
- const fs = require('fs')
5
- const {join, resolve} = require('path')
6
- const {getFormSpecs, flattenFormSpecs} = require('./dsl')
7
- const {genTableSql} = require('./table_mysql.js');
8
- const template = require('art-template')
9
-
10
- const isDirectory = source => lstatSync(source).isDirectory()
11
- const isFile = source => {
12
- try {
13
- return fs.statSync(source).isFile()
14
- } catch (e) {
15
- return false
16
- }
17
- }
18
-
19
- var model_git_version = 'unknown';
20
- try{
21
- model_git_version = require('child_process')
22
- .execSync('git rev-parse HEAD')
23
- .toString().trim();
24
- }
25
- catch(e){
26
- console.log('error while get git version');
27
- // console.log(e);
28
- }
29
-
30
- const owl_version = require('../package.json').version;
31
-
32
- function getProjectCode(owl) {
33
- if (owl._t && owl.prefix) {
34
- return owl.prefix + owl._t.toLowerCase();
35
- } else {
36
- return "owl_"+owl._t.toLowerCase();
37
- }
38
- }
39
-
40
-
41
- function getProjectName(owl) {
42
- if (owl['#meta']) {
43
- return owl['#meta'].projectName
44
- }
45
- return null
46
- }
47
-
48
- function getMeta(owl) {
49
- return owl['#meta']
50
- }
51
-
52
- let cwd = process.cwd();
53
- console.log("cwd=",cwd)
54
-
55
- var desktopDistDir = ''
56
- var libpath = 'undefined'
57
- var buildProperties = 'undefined'
58
-
59
-
60
- function mkdir(path) {
61
- try {
62
- fs.mkdirSync(path)
63
- } catch (e) {
64
- }
65
- }
66
-
67
- function getIndexMapping(flatternedSpecs){
68
- var allFields = flatternedSpecs.allFields;
69
- var propMappings = {};
70
- for(var i=0; i<allFields.length; i++){
71
- var field = allFields[i];
72
- if(field.fieldType == 'date'){
73
- var mapping = {
74
- }
75
- mapping[field.key] = {
76
- "type":"date"
77
- }
78
- propMappings[field.key] = {
79
- "type":"date"
80
- };
81
- }
82
- }
83
- if(Object.keys(propMappings).length>0){
84
- var s = JSON.stringify(propMappings);
85
- s = s.substring(1);
86
- s = s.substring(0,s.length-1);
87
- return "," + s;
88
- }
89
- return "";
90
- }
91
- function processOwl(owl, outdir, templatePath, buildType, inputFile) {
92
- var projectCode = getProjectCode(owl)
93
- var projectName = getProjectName(owl)
94
- var meta = getMeta(owl)
95
- var formSpecs = getFormSpecs(owl, '')
96
- var flattenedSpecs = flattenFormSpecs(formSpecs)
97
- var id = meta.id
98
- var idFunc = 'null'
99
- var lockFunc = 'null'
100
- var lock = meta.lock
101
- if (id) {
102
- idFunc = template.compile(id).toString()
103
- }
104
-
105
- if (lock) {
106
- lockFunc = template.compile(lock).toString()
107
- }
108
-
109
- if (!projectCode) {
110
- console.log(inputFile + ' is not a valid owl file,no projectCode')
111
- return
112
- }
113
- if (!projectName) {
114
- console.log(inputFile + ' is not a valid owl file,no projectName')
115
- return
116
- }
117
-
118
- // 处理templatePath里面的每一个文件
119
- var fullTemplatePath = templatePath;
120
- readdirSync(fullTemplatePath).map(name => {
121
- if (name === 'node_modules') {
122
- return
123
- }
124
-
125
- // if (buildType !== 'debug' && name === 'desktop' && outdir.indexOf('erp_owl') === -1) {
126
- // return
127
- // }
128
-
129
- var fullname = resolve(fullTemplatePath, name)
130
- if (isDirectory(fullname)) {
131
- var subOutDir = resolve(outdir, name)
132
- mkdir(subOutDir)
133
- processOwl(owl, subOutDir, fullname, buildType, inputFile)
134
- return
135
- }
136
- var dst = resolve(outdir, name)
137
- if (name.indexOf('.png') > -1 || name.indexOf('.PNG') > -1 ||
138
- name.indexOf('.jpg') > -1 || name.indexOf('.jpeg') > -1 ||
139
- name.indexOf('.JPG') > -1 || name.indexOf('.JPEG') > -1) {
140
- fs.copyFileSync(fullname, dst)
141
- return
142
- }
143
-
144
- let tableInfos = genTableSql(projectCode,formSpecs);
145
- let tablesql = tableInfos[0].join("\n\n");
146
- let tables = JSON.stringify(tableInfos[1]);
147
-
148
- var fileContent = fs.readFileSync(fullname, {encoding: 'utf-8'})
149
-
150
- fileContent = fileContent.replace(/@projectCode/g, projectCode)
151
- fileContent = fileContent.replace(/@projectName/g, projectName)
152
- fileContent = fileContent.replace(/@meta/g, JSON.stringify(meta))
153
- fileContent = fileContent.replace(/@formSpecs/g, JSON.stringify(formSpecs))
154
- fileContent = fileContent.replace(/@flattenedSpecs/g, JSON.stringify(flattenedSpecs))
155
- fileContent = fileContent.replace(/@fieldMappings/g, getIndexMapping(flattenedSpecs));
156
- fileContent = fileContent.replace(/@desktopDistDir/g, desktopDistDir)
157
- fileContent = fileContent.replace(/@idFunc/g, idFunc)
158
- fileContent = fileContent.replace(/@idOrig/g, id)
159
- fileContent = fileContent.replace(/@lockFunc/g, lockFunc)
160
- fileContent = fileContent.replace(/@lockOrig/g, lock)
161
- fileContent = fileContent.replace(/@buildProperties/g, buildProperties)
162
- fileContent = fileContent.replace(/@libpath/g, libpath)
163
- fileContent = fileContent.replace(/@model_git_version/g, model_git_version)
164
- fileContent = fileContent.replace(/@owl_version/g, owl_version)
165
- fileContent = fileContent.replace(/@tablesql/g, tablesql)
166
- fileContent = fileContent.replace(/@tables/g, tables)
167
-
168
- var eventHandlers = owl['#meta']['eventHandlers'];
169
- if(!eventHandlers){
170
- eventHandlers = [];
171
- }
172
- fileContent = fileContent.replace(/@eventHandlers/g, JSON.stringify(eventHandlers))
173
-
174
-
175
- var jobs = owl['#meta']['jobs'];
176
- if(!jobs){
177
- jobs = [];
178
- }
179
- fileContent = fileContent.replace(/@jobs/g, JSON.stringify(jobs))
180
-
181
-
182
- //去掉owl里面的敏感信息
183
- var spec = JSON.parse(JSON.stringify(owl));
184
- delete spec['#meta']['eventHandlers'];
185
- delete spec['#meta']['jobs'];
186
- fileContent = fileContent.replace(/@spec/g, JSON.stringify(spec))
187
-
188
- dst = resolve(outdir, name)
189
- fs.writeFileSync(dst, fileContent, {flag: 'w'})
190
- })
191
- }
192
-
193
-
194
- function setProject(owl, project){
195
- owl["#meta"]["project"] = project;
196
- }
197
-
198
- //处理一个文件的主入口
199
- function processOwlFile(dir,name, outdir, templatePath, buildType, modelDir,project) {
200
- var inputFile = resolve(dir,name);
201
- var content = fs.readFileSync(inputFile, {encoding: 'utf-8'})
202
- var owl = JSON.parse(content)
203
- var projectCode = getProjectCode(owl)
204
- var projectName = getProjectName(owl)
205
- if (!projectCode) {
206
- console.log(inputFile + ' is not a valid owl file,no projectCode')
207
- return
208
- }
209
- if (!projectName) {
210
- console.log(inputFile + ' is not a valid owl file,no projectName')
211
- return
212
- }
213
- setProject(owl,project);
214
-
215
- var owlProjectDir = join(outdir, projectCode)
216
- try {
217
- fs.mkdirSync(owlProjectDir)
218
- } catch (e) {
219
- }
220
-
221
- var formSpecs = getFormSpecs(owl, '')
222
- formSpecs["tableName"] = projectCode;
223
- formSpecs["_t"] = owl._t;
224
-
225
- var flattenedSpecs = flattenFormSpecs(formSpecs)
226
- //写入转换过的formspec.json
227
- var formspecDir = resolve(outdir,"_formspecs");
228
- // console.log("write formspects to " + formspecDir);
229
- mkdir(formspecDir);
230
-
231
- var formspecFile = resolve(formspecDir,"formspec_" + name);
232
- // console.log("writing file:" + formspecFile);
233
- fs.writeFileSync(formspecFile,JSON.stringify(formSpecs),{flag:'w'});
234
-
235
- processOwl(owl, owlProjectDir, templatePath, buildType)
236
- var owlProjectApiSrcDir = join(owlProjectDir, 'api/src')
237
-
238
- var extraTemplatePath = join(dir, owl._t)
239
- console.log("owlProjectDir="+owlProjectDir + ":extraTemplatePath=" + extraTemplatePath);
240
- if (fs.existsSync(extraTemplatePath) && isDirectory(extraTemplatePath)) {
241
- processOwl(owl, owlProjectDir, extraTemplatePath, buildType)
242
- }
243
- // 复制导出文件
244
- if (fs.existsSync(owlProjectApiSrcDir) && isDirectory(owlProjectApiSrcDir)) {
245
- var excelTemplate = join(modelDir, projectCode + '.xlsx')
246
- if (isFile(excelTemplate)) {
247
- var dst = join(owlProjectApiSrcDir, projectCode + '.xlsx')
248
- fs.copyFileSync(excelTemplate, dst)
249
- }
250
- }
251
- }
252
-
253
- function processInputDir(dir, outdir, templatePath, buildType, project) {
254
- readdirSync(resolve(cwd, dir)).map(name => {
255
- if (isDirectory(resolve(dir, name))) {
256
- try {
257
- fs.mkdirSync(resolve(outdir, name))
258
- } catch (e) {
259
- }
260
- processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
261
- } else if (name.indexOf('.json') > 0) {
262
- console.log("going to process " + name);
263
- processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
264
- console.log("processed " + name);
265
- }
266
- })
267
- }
268
-
269
-
270
- var pjson = require(join(__dirname, "../package.json"));
271
- var version = (pjson.version);
272
- console.log("owl version:" + version );
273
-
274
- var configFile = resolve(cwd,"owlconfig.json");
275
- if (process.argv.length > 2) {
276
- configFile = resolve(cwd, process.argv[2]);
277
- }
278
-
279
-
280
- var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
281
- var owlconfig = JSON.parse(content)
282
- var inPath = owlconfig.models;
283
- var outPath = owlconfig.generatedApps
284
- var templatePath = owlconfig.templates
285
- var buildType = owlconfig.buildType;
286
- var project = owlconfig.project;
287
- buildProperties = resolve(cwd,owlconfig.buildProperties);
288
- libpath = resolve(cwd,owlconfig.libpath);
289
- templatePath = resolve(cwd, templatePath);
290
- var fulloutPath = resolve(cwd,outPath);
291
-
292
- mkdir(fulloutPath);
293
-
294
-
295
- processInputDir(inPath, fulloutPath, templatePath, buildType,project);
1
+ #!/usr/bin/env node
2
+
3
+ const {lstatSync, readdirSync} = require('fs')
4
+ const fs = require('fs')
5
+ const {join, resolve} = require('path')
6
+ const {getFormSpecs, flattenFormSpecs} = require('./dsl')
7
+ const {genTableSql} = require('./table_mysql.js');
8
+ const template = require('art-template')
9
+
10
+ const isDirectory = source => lstatSync(source).isDirectory()
11
+ const isFile = source => {
12
+ try {
13
+ return fs.statSync(source).isFile()
14
+ } catch (e) {
15
+ return false
16
+ }
17
+ }
18
+
19
+ var model_git_version = 'unknown';
20
+ try{
21
+ model_git_version = require('child_process')
22
+ .execSync('git rev-parse HEAD')
23
+ .toString().trim();
24
+ }
25
+ catch(e){
26
+ console.log('error while get git version');
27
+ // console.log(e);
28
+ }
29
+
30
+ const owl_version = require('../package.json').version;
31
+
32
+ function getProjectCode(owl) {
33
+ if (owl._t && owl.prefix) {
34
+ return owl.prefix + owl._t.toLowerCase();
35
+ } else {
36
+ return "owl_"+owl._t.toLowerCase();
37
+ }
38
+ }
39
+
40
+
41
+ function getProjectName(owl) {
42
+ if (owl['#meta']) {
43
+ return owl['#meta'].projectName
44
+ }
45
+ return null
46
+ }
47
+
48
+ function getMeta(owl) {
49
+ return owl['#meta']
50
+ }
51
+
52
+ let cwd = process.cwd();
53
+ console.log("cwd=",cwd)
54
+
55
+ var desktopDistDir = ''
56
+ var libpath = 'undefined'
57
+ var buildProperties = 'undefined'
58
+
59
+
60
+ function mkdir(path) {
61
+ try {
62
+ fs.mkdirSync(path)
63
+ } catch (e) {
64
+ }
65
+ }
66
+
67
+ function getIndexMapping(flatternedSpecs){
68
+ var allFields = flatternedSpecs.allFields;
69
+ var propMappings = {};
70
+ for(var i=0; i<allFields.length; i++){
71
+ var field = allFields[i];
72
+ if(field.fieldType == 'date'){
73
+ var mapping = {
74
+ }
75
+ mapping[field.key] = {
76
+ "type":"date"
77
+ }
78
+ propMappings[field.key] = {
79
+ "type":"date"
80
+ };
81
+ }
82
+ }
83
+ if(Object.keys(propMappings).length>0){
84
+ var s = JSON.stringify(propMappings);
85
+ s = s.substring(1);
86
+ s = s.substring(0,s.length-1);
87
+ return "," + s;
88
+ }
89
+ return "";
90
+ }
91
+ function processOwl(owl, outdir, templatePath, buildType, inputFile) {
92
+ var projectCode = getProjectCode(owl)
93
+ var projectName = getProjectName(owl)
94
+ var meta = getMeta(owl)
95
+ var formSpecs = getFormSpecs(owl, '')
96
+ var flattenedSpecs = flattenFormSpecs(formSpecs)
97
+ var id = meta.id
98
+ var idFunc = 'null'
99
+ var lockFunc = 'null'
100
+ var lock = meta.lock
101
+ if (id) {
102
+ idFunc = template.compile(id).toString()
103
+ }
104
+
105
+ if (lock) {
106
+ lockFunc = template.compile(lock).toString()
107
+ }
108
+
109
+ if (!projectCode) {
110
+ console.log(inputFile + ' is not a valid owl file,no projectCode')
111
+ return
112
+ }
113
+ if (!projectName) {
114
+ console.log(inputFile + ' is not a valid owl file,no projectName')
115
+ return
116
+ }
117
+
118
+ // 处理templatePath里面的每一个文件
119
+ var fullTemplatePath = templatePath;
120
+ readdirSync(fullTemplatePath).map(name => {
121
+ if (name === 'node_modules') {
122
+ return
123
+ }
124
+
125
+ // if (buildType !== 'debug' && name === 'desktop' && outdir.indexOf('erp_owl') === -1) {
126
+ // return
127
+ // }
128
+
129
+ var fullname = resolve(fullTemplatePath, name)
130
+ if (isDirectory(fullname)) {
131
+ var subOutDir = resolve(outdir, name)
132
+ mkdir(subOutDir)
133
+ processOwl(owl, subOutDir, fullname, buildType, inputFile)
134
+ return
135
+ }
136
+ var dst = resolve(outdir, name)
137
+ if (name.indexOf('.png') > -1 || name.indexOf('.PNG') > -1 ||
138
+ name.indexOf('.jpg') > -1 || name.indexOf('.jpeg') > -1 ||
139
+ name.indexOf('.JPG') > -1 || name.indexOf('.JPEG') > -1) {
140
+ fs.copyFileSync(fullname, dst)
141
+ return
142
+ }
143
+
144
+ let tableInfos = genTableSql(projectCode,formSpecs);
145
+ let tablesql = tableInfos[0].join("\n\n");
146
+ let tables = JSON.stringify(tableInfos[1]);
147
+
148
+ var fileContent = fs.readFileSync(fullname, {encoding: 'utf-8'})
149
+
150
+ fileContent = fileContent.replace(/@projectCode/g, projectCode)
151
+ fileContent = fileContent.replace(/@projectName/g, projectName)
152
+ fileContent = fileContent.replace(/@meta/g, JSON.stringify(meta))
153
+ fileContent = fileContent.replace(/@formSpecs/g, JSON.stringify(formSpecs))
154
+ fileContent = fileContent.replace(/@flattenedSpecs/g, JSON.stringify(flattenedSpecs))
155
+ fileContent = fileContent.replace(/@fieldMappings/g, getIndexMapping(flattenedSpecs));
156
+ fileContent = fileContent.replace(/@desktopDistDir/g, desktopDistDir)
157
+ fileContent = fileContent.replace(/@idFunc/g, idFunc)
158
+ fileContent = fileContent.replace(/@idOrig/g, id)
159
+ fileContent = fileContent.replace(/@lockFunc/g, lockFunc)
160
+ fileContent = fileContent.replace(/@lockOrig/g, lock)
161
+ fileContent = fileContent.replace(/@buildProperties/g, buildProperties)
162
+ fileContent = fileContent.replace(/@libpath/g, libpath)
163
+ fileContent = fileContent.replace(/@model_git_version/g, model_git_version)
164
+ fileContent = fileContent.replace(/@owl_version/g, owl_version)
165
+ fileContent = fileContent.replace(/@tablesql/g, tablesql)
166
+ fileContent = fileContent.replace(/@tables/g, tables)
167
+
168
+ var eventHandlers = owl['#meta']['eventHandlers'];
169
+ if(!eventHandlers){
170
+ eventHandlers = [];
171
+ }
172
+ fileContent = fileContent.replace(/@eventHandlers/g, JSON.stringify(eventHandlers))
173
+
174
+
175
+ var jobs = owl['#meta']['jobs'];
176
+ if(!jobs){
177
+ jobs = [];
178
+ }
179
+ fileContent = fileContent.replace(/@jobs/g, JSON.stringify(jobs))
180
+
181
+
182
+ //去掉owl里面的敏感信息
183
+ var spec = JSON.parse(JSON.stringify(owl));
184
+ delete spec['#meta']['eventHandlers'];
185
+ delete spec['#meta']['jobs'];
186
+ fileContent = fileContent.replace(/@spec/g, JSON.stringify(spec))
187
+
188
+ dst = resolve(outdir, name)
189
+ fs.writeFileSync(dst, fileContent, {flag: 'w'})
190
+ })
191
+ }
192
+
193
+
194
+ function setProject(owl, project){
195
+ owl["#meta"]["project"] = project;
196
+ }
197
+
198
+ //处理一个文件的主入口
199
+ function processOwlFile(dir,name, outdir, templatePath, buildType, modelDir,project) {
200
+ var inputFile = resolve(dir,name);
201
+ var content = fs.readFileSync(inputFile, {encoding: 'utf-8'})
202
+ var owl = JSON.parse(content)
203
+ var projectCode = getProjectCode(owl)
204
+ var projectName = getProjectName(owl)
205
+ if (!projectCode) {
206
+ console.log(inputFile + ' is not a valid owl file,no projectCode')
207
+ return
208
+ }
209
+ if (!projectName) {
210
+ console.log(inputFile + ' is not a valid owl file,no projectName')
211
+ return
212
+ }
213
+ setProject(owl,project);
214
+
215
+ var owlProjectDir = join(outdir, projectCode)
216
+ try {
217
+ fs.mkdirSync(owlProjectDir)
218
+ } catch (e) {
219
+ }
220
+
221
+ var formSpecs = getFormSpecs(owl, '')
222
+ formSpecs["tableName"] = projectCode;
223
+ formSpecs["_t"] = owl._t;
224
+
225
+ var flattenedSpecs = flattenFormSpecs(formSpecs)
226
+ //写入转换过的formspec.json
227
+ var formspecDir = resolve(outdir,"_formspecs");
228
+ // console.log("write formspects to " + formspecDir);
229
+ mkdir(formspecDir);
230
+
231
+ var formspecFile = resolve(formspecDir,"formspec_" + name);
232
+ // console.log("writing file:" + formspecFile);
233
+ fs.writeFileSync(formspecFile,JSON.stringify(formSpecs),{flag:'w'});
234
+
235
+ processOwl(owl, owlProjectDir, templatePath, buildType)
236
+ var owlProjectApiSrcDir = join(owlProjectDir, 'api/src')
237
+
238
+ var extraTemplatePath = join(dir, owl._t)
239
+ console.log("owlProjectDir="+owlProjectDir + ":extraTemplatePath=" + extraTemplatePath);
240
+ if (fs.existsSync(extraTemplatePath) && isDirectory(extraTemplatePath)) {
241
+ processOwl(owl, owlProjectDir, extraTemplatePath, buildType)
242
+ }
243
+ // 复制导出文件
244
+ if (fs.existsSync(owlProjectApiSrcDir) && isDirectory(owlProjectApiSrcDir)) {
245
+ var excelTemplate = join(modelDir, projectCode + '.xlsx')
246
+ if (isFile(excelTemplate)) {
247
+ var dst = join(owlProjectApiSrcDir, projectCode + '.xlsx')
248
+ fs.copyFileSync(excelTemplate, dst)
249
+ }
250
+ }
251
+ }
252
+
253
+ function processInputDir(dir, outdir, templatePath, buildType, project) {
254
+ readdirSync(resolve(cwd, dir)).map(name => {
255
+ if (isDirectory(resolve(dir, name))) {
256
+ try {
257
+ fs.mkdirSync(resolve(outdir, name))
258
+ } catch (e) {
259
+ }
260
+ processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
261
+ } else if (name.indexOf('.json') > 0) {
262
+ console.log("going to process " + name);
263
+ processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
264
+ console.log("processed " + name);
265
+ }
266
+ })
267
+ }
268
+
269
+
270
+ var pjson = require(join(__dirname, "../package.json"));
271
+ var version = (pjson.version);
272
+ console.log("owl version:" + version );
273
+
274
+ var configFile = resolve(cwd,"owlconfig.json");
275
+ if (process.argv.length > 2) {
276
+ configFile = resolve(cwd, process.argv[2]);
277
+ }
278
+
279
+
280
+ var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
281
+ var owlconfig = JSON.parse(content)
282
+ var inPath = owlconfig.models;
283
+ var outPath = owlconfig.generatedApps
284
+ var templatePath = owlconfig.templates
285
+ var buildType = owlconfig.buildType;
286
+ var project = owlconfig.project;
287
+ buildProperties = resolve(cwd,owlconfig.buildProperties);
288
+ libpath = resolve(cwd,owlconfig.libpath);
289
+ templatePath = resolve(cwd, templatePath);
290
+ var fulloutPath = resolve(cwd,outPath);
291
+
292
+ mkdir(fulloutPath);
293
+
294
+
295
+ processInputDir(inPath, fulloutPath, templatePath, buildType,project);
@@ -1,17 +1,17 @@
1
- {
2
- "models":"/Users/zhengxiangyang/work/owl/modules/owl_models/owlPlatform_models",
3
- "templates":"/Users/zhengxiangyang/work/owl/modules/owl_templates/defaultTemplate",
4
- "generatedApps":"/Users/zhengxiangyang/work/owl/generatedApps",
5
- "buildType":"release",
6
- "buildProperties":"/Users/zhengxiangyang/work/owl/build.properties",
7
- "libpath":"/Users/zhengxiangyang/work/owl/lib",
8
- "owl_home":"/Users/zhengxiangyang/work/owl",
9
- "project": "owl",
10
- "mysql":{
11
- "host" : "${mysqlhost}",
12
- "user" : "${mysqluser}",
13
- "password" : "${mysqlpass}",
14
- "database" : "${mysqldb}"
15
- }
16
-
1
+ {
2
+ "models":"/Users/zhengxiangyang/work/owl/modules/owl_models/owlPlatform_models",
3
+ "templates":"/Users/zhengxiangyang/work/owl/modules/owl_templates/defaultTemplate",
4
+ "generatedApps":"/Users/zhengxiangyang/work/owl/generatedApps",
5
+ "buildType":"release",
6
+ "buildProperties":"/Users/zhengxiangyang/work/owl/build.properties",
7
+ "libpath":"/Users/zhengxiangyang/work/owl/lib",
8
+ "owl_home":"/Users/zhengxiangyang/work/owl",
9
+ "project": "owl",
10
+ "mysql":{
11
+ "host" : "${mysqlhost}",
12
+ "user" : "${mysqluser}",
13
+ "password" : "${mysqlpass}",
14
+ "database" : "${mysqldb}"
15
+ }
16
+
17
17
  }