owl-cli 6.143.0 → 6.145.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 (61) 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 +305 -305
  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 +78 -78
  18. package/defaultTemplate/api/src/handlers/delete.jsx +88 -88
  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 +50 -50
  25. package/defaultTemplate/api/src/handlers/getByIds.jsx +51 -51
  26. package/defaultTemplate/api/src/handlers/getChildren.jsx +96 -96
  27. package/defaultTemplate/api/src/handlers/getExportTaskInfo.jsx +34 -34
  28. package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
  29. package/defaultTemplate/api/src/handlers/include/checklogin.jsx +786 -786
  30. package/defaultTemplate/api/src/handlers/include/diff.jsx +315 -315
  31. package/defaultTemplate/api/src/handlers/include/util.jsx +60 -60
  32. package/defaultTemplate/api/src/handlers/list.jsx +252 -252
  33. package/defaultTemplate/api/src/handlers/listEx.jsx +114 -114
  34. package/defaultTemplate/api/src/handlers/reIndex.jsx +63 -63
  35. package/defaultTemplate/api/src/handlers/recovery.jsx +53 -53
  36. package/defaultTemplate/api/src/handlers/save.jsx +125 -125
  37. package/defaultTemplate/api/src/handlers/upload.jsx +72 -72
  38. package/defaultTemplate/api/src/init/indexConfigs/changeMapping.json +14 -14
  39. package/defaultTemplate/api/src/init/indexConfigs/createAliase.json +10 -10
  40. package/defaultTemplate/api/src/init/indexConfigs/createIndex.json +55 -55
  41. package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
  42. package/defaultTemplate/api/src/init/indexConfigs/reindex.json +10 -10
  43. package/defaultTemplate/api/src/init/init.jsx +25 -25
  44. package/defaultTemplate/api/src/meta.json +10 -10
  45. package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
  46. package/defaultTemplate/api/src/services/modelService.jsx +1240 -1221
  47. package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
  48. package/defaultTemplate/api/src/tasks/export.jsx +366 -366
  49. package/defaultTemplate/api/src/tasks/exportDoc.jsx +99 -99
  50. package/defaultTemplate/api/src/tasks/exportExTask.jsx +332 -332
  51. package/defaultTemplate/api/src/tasks/exportWithTemplateTask.jsx +128 -128
  52. package/defaultTemplate/api/src/tasks/exportZip.jsx +49 -49
  53. package/examples/buildProperties/build.properties +2 -2
  54. package/examples/gitignore/gitignore_example.txt +1 -1
  55. package/examples/models/product.json +52 -52
  56. package/examples/models/shop.json +71 -71
  57. package/examples/models/sku.json +254 -254
  58. package/examples/models/user.json +49 -49
  59. package/examples/owlconfig.json +13 -13
  60. package/package.json +33 -33
  61. package/todo.txt +4 -4
package/bin/owl.js CHANGED
@@ -1,305 +1,305 @@
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.key == 'owl_createTime' || field.key == 'm' ){
73
- continue;
74
- }
75
- if(field.fieldType == 'date'){
76
- propMappings[field.key] = {
77
- "type":"date"
78
- };
79
-
80
- }
81
- else if(field.fieldType == 'string'){
82
- propMappings[field.key] = {
83
- "type":"text",
84
- "fields": {
85
- "keyword": {
86
- "type": "keyword",
87
- "ignore_above": 256
88
- }
89
- }
90
- };
91
- }
92
- }
93
- if(Object.keys(propMappings).length>0){
94
- var s = JSON.stringify(propMappings);
95
- s = s.substring(1);
96
- s = s.substring(0,s.length-1);
97
- return "," + s;
98
- }
99
- return "";
100
- }
101
- function processOwl(owl, outdir, templatePath, buildType, inputFile) {
102
- var projectCode = getProjectCode(owl)
103
- var projectName = getProjectName(owl)
104
- var meta = getMeta(owl)
105
- var formSpecs = getFormSpecs(owl, '')
106
- var flattenedSpecs = flattenFormSpecs(formSpecs)
107
- var id = meta.id
108
- var idFunc = 'null'
109
- var lockFunc = 'null'
110
- var lock = meta.lock
111
- if (id) {
112
- idFunc = template.compile(id).toString()
113
- }
114
-
115
- if (lock) {
116
- lockFunc = template.compile(lock).toString()
117
- }
118
-
119
- if (!projectCode) {
120
- console.log(inputFile + ' is not a valid owl file,no projectCode')
121
- return
122
- }
123
- if (!projectName) {
124
- console.log(inputFile + ' is not a valid owl file,no projectName')
125
- return
126
- }
127
-
128
- // 处理templatePath里面的每一个文件
129
- var fullTemplatePath = templatePath;
130
- readdirSync(fullTemplatePath).map(name => {
131
- if (name === 'node_modules') {
132
- return
133
- }
134
-
135
- // if (buildType !== 'debug' && name === 'desktop' && outdir.indexOf('erp_owl') === -1) {
136
- // return
137
- // }
138
-
139
- var fullname = resolve(fullTemplatePath, name)
140
- if (isDirectory(fullname)) {
141
- var subOutDir = resolve(outdir, name)
142
- mkdir(subOutDir)
143
- processOwl(owl, subOutDir, fullname, buildType, inputFile)
144
- return
145
- }
146
- var dst = resolve(outdir, name)
147
- if (name.indexOf('.png') > -1 || name.indexOf('.PNG') > -1 ||
148
- name.indexOf('.jpg') > -1 || name.indexOf('.jpeg') > -1 ||
149
- name.indexOf('.JPG') > -1 || name.indexOf('.JPEG') > -1) {
150
- fs.copyFileSync(fullname, dst)
151
- return
152
- }
153
-
154
- let tableInfos = genTableSql(projectCode,formSpecs);
155
- let tablesql = tableInfos[0].join("\n\n");
156
- let tables = JSON.stringify(tableInfos[1]);
157
-
158
- var fileContent = fs.readFileSync(fullname, {encoding: 'utf-8'})
159
-
160
- fileContent = fileContent.replace(/@projectCode/g, projectCode)
161
- fileContent = fileContent.replace(/@projectName/g, projectName)
162
- fileContent = fileContent.replace(/@meta/g, JSON.stringify(meta))
163
- fileContent = fileContent.replace(/@formSpecs/g, JSON.stringify(formSpecs))
164
- fileContent = fileContent.replace(/@flattenedSpecs/g, JSON.stringify(flattenedSpecs))
165
- fileContent = fileContent.replace(/@fieldMappings/g, getIndexMapping(flattenedSpecs));
166
- fileContent = fileContent.replace(/@desktopDistDir/g, desktopDistDir)
167
- fileContent = fileContent.replace(/@idFunc/g, idFunc)
168
- fileContent = fileContent.replace(/@idOrig/g, id)
169
- fileContent = fileContent.replace(/@lockFunc/g, lockFunc)
170
- fileContent = fileContent.replace(/@lockOrig/g, lock)
171
- fileContent = fileContent.replace(/@buildProperties/g, buildProperties)
172
- fileContent = fileContent.replace(/@libpath/g, libpath)
173
- fileContent = fileContent.replace(/@model_git_version/g, model_git_version)
174
- fileContent = fileContent.replace(/@owl_version/g, owl_version)
175
- fileContent = fileContent.replace(/@tablesql/g, tablesql)
176
- fileContent = fileContent.replace(/@tables/g, tables)
177
-
178
- var eventHandlers = owl['#meta']['eventHandlers'];
179
- if(!eventHandlers){
180
- eventHandlers = [];
181
- }
182
- fileContent = fileContent.replace(/@eventHandlers/g, JSON.stringify(eventHandlers))
183
-
184
-
185
- var jobs = owl['#meta']['jobs'];
186
- if(!jobs){
187
- jobs = [];
188
- }
189
- fileContent = fileContent.replace(/@jobs/g, JSON.stringify(jobs))
190
-
191
-
192
- //去掉owl里面的敏感信息
193
- var spec = JSON.parse(JSON.stringify(owl));
194
- delete spec['#meta']['eventHandlers'];
195
- delete spec['#meta']['jobs'];
196
- fileContent = fileContent.replace(/@spec/g, JSON.stringify(spec))
197
-
198
- dst = resolve(outdir, name)
199
- fs.writeFileSync(dst, fileContent, {flag: 'w'})
200
- })
201
- }
202
-
203
-
204
- function setProject(owl, project){
205
- owl["#meta"]["project"] = project;
206
- }
207
-
208
- //处理一个文件的主入口
209
- function processOwlFile(dir,name, outdir, templatePath, buildType, modelDir,project) {
210
- var inputFile = resolve(dir,name);
211
- var content = fs.readFileSync(inputFile, {encoding: 'utf-8'})
212
- var owl = JSON.parse(content)
213
- var projectCode = getProjectCode(owl)
214
- var projectName = getProjectName(owl)
215
- if (!projectCode) {
216
- console.log(inputFile + ' is not a valid owl file,no projectCode')
217
- return
218
- }
219
- if (!projectName) {
220
- console.log(inputFile + ' is not a valid owl file,no projectName')
221
- return
222
- }
223
- setProject(owl,project);
224
-
225
- var owlProjectDir = join(outdir, projectCode)
226
- try {
227
- fs.mkdirSync(owlProjectDir)
228
- } catch (e) {
229
- }
230
-
231
- var formSpecs = getFormSpecs(owl, '')
232
- formSpecs["tableName"] = projectCode;
233
- formSpecs["_t"] = owl._t;
234
-
235
- var flattenedSpecs = flattenFormSpecs(formSpecs)
236
- //写入转换过的formspec.json
237
- var formspecDir = resolve(outdir,"_formspecs");
238
- // console.log("write formspects to " + formspecDir);
239
- mkdir(formspecDir);
240
-
241
- var formspecFile = resolve(formspecDir,"formspec_" + name);
242
- // console.log("writing file:" + formspecFile);
243
- fs.writeFileSync(formspecFile,JSON.stringify(formSpecs),{flag:'w'});
244
-
245
- processOwl(owl, owlProjectDir, templatePath, buildType)
246
- var owlProjectApiSrcDir = join(owlProjectDir, 'api/src')
247
-
248
- var extraTemplatePath = join(dir, owl._t)
249
- console.log("owlProjectDir="+owlProjectDir + ":extraTemplatePath=" + extraTemplatePath);
250
- if (fs.existsSync(extraTemplatePath) && isDirectory(extraTemplatePath)) {
251
- processOwl(owl, owlProjectDir, extraTemplatePath, buildType)
252
- }
253
- // 复制导出文件
254
- if (fs.existsSync(owlProjectApiSrcDir) && isDirectory(owlProjectApiSrcDir)) {
255
- var excelTemplate = join(modelDir, projectCode + '.xlsx')
256
- if (isFile(excelTemplate)) {
257
- var dst = join(owlProjectApiSrcDir, projectCode + '.xlsx')
258
- fs.copyFileSync(excelTemplate, dst)
259
- }
260
- }
261
- }
262
-
263
- function processInputDir(dir, outdir, templatePath, buildType, project) {
264
- readdirSync(resolve(cwd, dir)).map(name => {
265
- if (isDirectory(resolve(dir, name))) {
266
- try {
267
- fs.mkdirSync(resolve(outdir, name))
268
- } catch (e) {
269
- }
270
- processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
271
- } else if (name.indexOf('.json') > 0) {
272
- console.log("going to process " + name);
273
- processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
274
- console.log("processed " + name);
275
- }
276
- })
277
- }
278
-
279
-
280
- var pjson = require(join(__dirname, "../package.json"));
281
- var version = (pjson.version);
282
- console.log("owl version:" + version );
283
-
284
- var configFile = resolve(cwd,"owlconfig.json");
285
- if (process.argv.length > 2) {
286
- configFile = resolve(cwd, process.argv[2]);
287
- }
288
-
289
-
290
- var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
291
- var owlconfig = JSON.parse(content)
292
- var inPath = owlconfig.models;
293
- var outPath = owlconfig.generatedApps
294
- var templatePath = owlconfig.templates
295
- var buildType = owlconfig.buildType;
296
- var project = owlconfig.project;
297
- buildProperties = resolve(cwd,owlconfig.buildProperties);
298
- libpath = resolve(cwd,owlconfig.libpath);
299
- templatePath = resolve(cwd, templatePath);
300
- var fulloutPath = resolve(cwd,outPath);
301
-
302
- mkdir(fulloutPath);
303
-
304
-
305
- 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.key == 'owl_createTime' || field.key == 'm' ){
73
+ continue;
74
+ }
75
+ if(field.fieldType == 'date'){
76
+ propMappings[field.key] = {
77
+ "type":"date"
78
+ };
79
+
80
+ }
81
+ else if(field.fieldType == 'string'){
82
+ propMappings[field.key] = {
83
+ "type":"text",
84
+ "fields": {
85
+ "keyword": {
86
+ "type": "keyword",
87
+ "ignore_above": 256
88
+ }
89
+ }
90
+ };
91
+ }
92
+ }
93
+ if(Object.keys(propMappings).length>0){
94
+ var s = JSON.stringify(propMappings);
95
+ s = s.substring(1);
96
+ s = s.substring(0,s.length-1);
97
+ return "," + s;
98
+ }
99
+ return "";
100
+ }
101
+ function processOwl(owl, outdir, templatePath, buildType, inputFile) {
102
+ var projectCode = getProjectCode(owl)
103
+ var projectName = getProjectName(owl)
104
+ var meta = getMeta(owl)
105
+ var formSpecs = getFormSpecs(owl, '')
106
+ var flattenedSpecs = flattenFormSpecs(formSpecs)
107
+ var id = meta.id
108
+ var idFunc = 'null'
109
+ var lockFunc = 'null'
110
+ var lock = meta.lock
111
+ if (id) {
112
+ idFunc = template.compile(id).toString()
113
+ }
114
+
115
+ if (lock) {
116
+ lockFunc = template.compile(lock).toString()
117
+ }
118
+
119
+ if (!projectCode) {
120
+ console.log(inputFile + ' is not a valid owl file,no projectCode')
121
+ return
122
+ }
123
+ if (!projectName) {
124
+ console.log(inputFile + ' is not a valid owl file,no projectName')
125
+ return
126
+ }
127
+
128
+ // 处理templatePath里面的每一个文件
129
+ var fullTemplatePath = templatePath;
130
+ readdirSync(fullTemplatePath).map(name => {
131
+ if (name === 'node_modules') {
132
+ return
133
+ }
134
+
135
+ // if (buildType !== 'debug' && name === 'desktop' && outdir.indexOf('erp_owl') === -1) {
136
+ // return
137
+ // }
138
+
139
+ var fullname = resolve(fullTemplatePath, name)
140
+ if (isDirectory(fullname)) {
141
+ var subOutDir = resolve(outdir, name)
142
+ mkdir(subOutDir)
143
+ processOwl(owl, subOutDir, fullname, buildType, inputFile)
144
+ return
145
+ }
146
+ var dst = resolve(outdir, name)
147
+ if (name.indexOf('.png') > -1 || name.indexOf('.PNG') > -1 ||
148
+ name.indexOf('.jpg') > -1 || name.indexOf('.jpeg') > -1 ||
149
+ name.indexOf('.JPG') > -1 || name.indexOf('.JPEG') > -1) {
150
+ fs.copyFileSync(fullname, dst)
151
+ return
152
+ }
153
+
154
+ let tableInfos = genTableSql(projectCode,formSpecs);
155
+ let tablesql = tableInfos[0].join("\n\n");
156
+ let tables = JSON.stringify(tableInfos[1]);
157
+
158
+ var fileContent = fs.readFileSync(fullname, {encoding: 'utf-8'})
159
+
160
+ fileContent = fileContent.replace(/@projectCode/g, projectCode)
161
+ fileContent = fileContent.replace(/@projectName/g, projectName)
162
+ fileContent = fileContent.replace(/@meta/g, JSON.stringify(meta))
163
+ fileContent = fileContent.replace(/@formSpecs/g, JSON.stringify(formSpecs))
164
+ fileContent = fileContent.replace(/@flattenedSpecs/g, JSON.stringify(flattenedSpecs))
165
+ fileContent = fileContent.replace(/@fieldMappings/g, getIndexMapping(flattenedSpecs));
166
+ fileContent = fileContent.replace(/@desktopDistDir/g, desktopDistDir)
167
+ fileContent = fileContent.replace(/@idFunc/g, idFunc)
168
+ fileContent = fileContent.replace(/@idOrig/g, id)
169
+ fileContent = fileContent.replace(/@lockFunc/g, lockFunc)
170
+ fileContent = fileContent.replace(/@lockOrig/g, lock)
171
+ fileContent = fileContent.replace(/@buildProperties/g, buildProperties)
172
+ fileContent = fileContent.replace(/@libpath/g, libpath)
173
+ fileContent = fileContent.replace(/@model_git_version/g, model_git_version)
174
+ fileContent = fileContent.replace(/@owl_version/g, owl_version)
175
+ fileContent = fileContent.replace(/@tablesql/g, tablesql)
176
+ fileContent = fileContent.replace(/@tables/g, tables)
177
+
178
+ var eventHandlers = owl['#meta']['eventHandlers'];
179
+ if(!eventHandlers){
180
+ eventHandlers = [];
181
+ }
182
+ fileContent = fileContent.replace(/@eventHandlers/g, JSON.stringify(eventHandlers))
183
+
184
+
185
+ var jobs = owl['#meta']['jobs'];
186
+ if(!jobs){
187
+ jobs = [];
188
+ }
189
+ fileContent = fileContent.replace(/@jobs/g, JSON.stringify(jobs))
190
+
191
+
192
+ //去掉owl里面的敏感信息
193
+ var spec = JSON.parse(JSON.stringify(owl));
194
+ delete spec['#meta']['eventHandlers'];
195
+ delete spec['#meta']['jobs'];
196
+ fileContent = fileContent.replace(/@spec/g, JSON.stringify(spec))
197
+
198
+ dst = resolve(outdir, name)
199
+ fs.writeFileSync(dst, fileContent, {flag: 'w'})
200
+ })
201
+ }
202
+
203
+
204
+ function setProject(owl, project){
205
+ owl["#meta"]["project"] = project;
206
+ }
207
+
208
+ //处理一个文件的主入口
209
+ function processOwlFile(dir,name, outdir, templatePath, buildType, modelDir,project) {
210
+ var inputFile = resolve(dir,name);
211
+ var content = fs.readFileSync(inputFile, {encoding: 'utf-8'})
212
+ var owl = JSON.parse(content)
213
+ var projectCode = getProjectCode(owl)
214
+ var projectName = getProjectName(owl)
215
+ if (!projectCode) {
216
+ console.log(inputFile + ' is not a valid owl file,no projectCode')
217
+ return
218
+ }
219
+ if (!projectName) {
220
+ console.log(inputFile + ' is not a valid owl file,no projectName')
221
+ return
222
+ }
223
+ setProject(owl,project);
224
+
225
+ var owlProjectDir = join(outdir, projectCode)
226
+ try {
227
+ fs.mkdirSync(owlProjectDir)
228
+ } catch (e) {
229
+ }
230
+
231
+ var formSpecs = getFormSpecs(owl, '')
232
+ formSpecs["tableName"] = projectCode;
233
+ formSpecs["_t"] = owl._t;
234
+
235
+ var flattenedSpecs = flattenFormSpecs(formSpecs)
236
+ //写入转换过的formspec.json
237
+ var formspecDir = resolve(outdir,"_formspecs");
238
+ // console.log("write formspects to " + formspecDir);
239
+ mkdir(formspecDir);
240
+
241
+ var formspecFile = resolve(formspecDir,"formspec_" + name);
242
+ // console.log("writing file:" + formspecFile);
243
+ fs.writeFileSync(formspecFile,JSON.stringify(formSpecs),{flag:'w'});
244
+
245
+ processOwl(owl, owlProjectDir, templatePath, buildType)
246
+ var owlProjectApiSrcDir = join(owlProjectDir, 'api/src')
247
+
248
+ var extraTemplatePath = join(dir, owl._t)
249
+ console.log("owlProjectDir="+owlProjectDir + ":extraTemplatePath=" + extraTemplatePath);
250
+ if (fs.existsSync(extraTemplatePath) && isDirectory(extraTemplatePath)) {
251
+ processOwl(owl, owlProjectDir, extraTemplatePath, buildType)
252
+ }
253
+ // 复制导出文件
254
+ if (fs.existsSync(owlProjectApiSrcDir) && isDirectory(owlProjectApiSrcDir)) {
255
+ var excelTemplate = join(modelDir, projectCode + '.xlsx')
256
+ if (isFile(excelTemplate)) {
257
+ var dst = join(owlProjectApiSrcDir, projectCode + '.xlsx')
258
+ fs.copyFileSync(excelTemplate, dst)
259
+ }
260
+ }
261
+ }
262
+
263
+ function processInputDir(dir, outdir, templatePath, buildType, project) {
264
+ readdirSync(resolve(cwd, dir)).map(name => {
265
+ if (isDirectory(resolve(dir, name))) {
266
+ try {
267
+ fs.mkdirSync(resolve(outdir, name))
268
+ } catch (e) {
269
+ }
270
+ processInputDir(resolve(dir, name), resolve(outdir, name), templatePath, buildType,project)
271
+ } else if (name.indexOf('.json') > 0) {
272
+ console.log("going to process " + name);
273
+ processOwlFile(dir, name, outdir, templatePath, buildType, dir,project)
274
+ console.log("processed " + name);
275
+ }
276
+ })
277
+ }
278
+
279
+
280
+ var pjson = require(join(__dirname, "../package.json"));
281
+ var version = (pjson.version);
282
+ console.log("owl version:" + version );
283
+
284
+ var configFile = resolve(cwd,"owlconfig.json");
285
+ if (process.argv.length > 2) {
286
+ configFile = resolve(cwd, process.argv[2]);
287
+ }
288
+
289
+
290
+ var content = fs.readFileSync(configFile, {encoding: 'utf-8'})
291
+ var owlconfig = JSON.parse(content)
292
+ var inPath = owlconfig.models;
293
+ var outPath = owlconfig.generatedApps
294
+ var templatePath = owlconfig.templates
295
+ var buildType = owlconfig.buildType;
296
+ var project = owlconfig.project;
297
+ buildProperties = resolve(cwd,owlconfig.buildProperties);
298
+ libpath = resolve(cwd,owlconfig.libpath);
299
+ templatePath = resolve(cwd, templatePath);
300
+ var fulloutPath = resolve(cwd,outPath);
301
+
302
+ mkdir(fulloutPath);
303
+
304
+
305
+ 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
  }