|
1
|
|
|
import path from 'path' |
|
2
|
|
|
import fse from 'fs-extra' |
|
3
|
|
|
import {init, log, trace, error, processConfig, getTime} from './initAbeForProcesses' |
|
4
|
|
|
|
|
5
|
|
|
// IMPORT LIB |
|
6
|
|
|
var Page = require('../../cli').Page |
|
7
|
|
|
var cmsOperations = require('../../cli').cmsOperations |
|
8
|
|
|
var abeExtend = require('../../cli').abeExtend |
|
9
|
|
|
var Manager = require('../../cli').Manager |
|
10
|
|
|
var cmsData = require('../../cli').cmsData |
|
11
|
|
|
var cmsTemplates = require('../../cli').cmsTemplates |
|
12
|
|
|
var config = require('../../cli').config |
|
13
|
|
|
var templatesTexts = {} |
|
14
|
|
|
|
|
15
|
|
|
function publishNext(files, tt, cb, i = 0) { |
|
16
|
|
|
var pub = files.shift() |
|
17
|
|
|
if(typeof pub !== 'undefined' && pub !== null) { |
|
18
|
|
|
|
|
19
|
|
|
var jsonObject = fse.readJsonSync(pub[processConfig.ABE_STATUS].path) |
|
20
|
|
|
i++ |
|
21
|
|
|
var p = new Promise((resolve) => { |
|
22
|
|
|
if(typeof templatesTexts[jsonObject.abe_meta.template] === 'undefined' || templatesTexts[jsonObject.abe_meta.template] === null) { |
|
23
|
|
|
templatesTexts[jsonObject.abe_meta.template] = cmsTemplates.template.getTemplate(jsonObject.abe_meta.template) |
|
24
|
|
|
} |
|
25
|
|
|
|
|
26
|
|
|
cmsData.source.getDataList(path.dirname(jsonObject.abe_meta.link), templatesTexts[jsonObject.abe_meta.template], jsonObject, true) |
|
27
|
|
|
.then(() => { |
|
28
|
|
|
jsonObject = abeExtend.hooks.instance.trigger('afterGetDataListOnSave', jsonObject) |
|
29
|
|
|
|
|
30
|
|
|
var obj = { |
|
31
|
|
|
type: jsonObject.abe_meta.status, |
|
32
|
|
|
json: { |
|
33
|
|
|
content: jsonObject |
|
34
|
|
|
} |
|
35
|
|
|
} |
|
36
|
|
|
|
|
37
|
|
|
var page = new Page(obj.json.content.abe_meta.template, templatesTexts[jsonObject.abe_meta.template], obj.json.content, true) |
|
38
|
|
|
|
|
39
|
|
|
cmsOperations.save.saveHtml( |
|
40
|
|
|
path.join(config.root, processConfig.ABE_DESTINATION, jsonObject.abe_meta.link), |
|
41
|
|
|
page.html |
|
42
|
|
|
) |
|
43
|
|
|
|
|
44
|
|
|
obj = abeExtend.hooks.instance.trigger('afterSave', obj) |
|
|
|
|
|
|
45
|
|
|
|
|
46
|
|
|
trace('('+ getTime() + ') ' + i + ' - ' + pub[processConfig.ABE_STATUS].path.replace(config.root, '').replace(config.data.url, '') + ' (tpl: ' + jsonObject.abe_meta.template + ')') |
|
47
|
|
|
resolve() |
|
48
|
|
|
}, |
|
49
|
|
|
() => { |
|
50
|
|
|
error('generate-posts ERROR on ' + pub[processConfig.ABE_STATUS].path.replace(config.root, '').replace(config.data.url, '')) |
|
51
|
|
|
resolve() |
|
52
|
|
|
}) |
|
53
|
|
|
}) |
|
54
|
|
|
|
|
55
|
|
|
p.then(function () { |
|
56
|
|
|
publishNext(files, tt, cb, i++) |
|
57
|
|
|
}) |
|
58
|
|
|
.catch(function (e) { |
|
59
|
|
|
publishNext(files, tt, cb, i++) |
|
60
|
|
|
error('error', e) |
|
61
|
|
|
}) |
|
62
|
|
|
}else { |
|
63
|
|
|
cb(i) |
|
64
|
|
|
} |
|
65
|
|
|
} |
|
66
|
|
|
|
|
67
|
|
|
function startProcess() { |
|
68
|
|
|
log('start publish all at path ' + processConfig.ABE_PATH) |
|
69
|
|
|
log('searching for file at ' + config.root) |
|
70
|
|
|
log('seach status: ' + processConfig.ABE_STATUS) |
|
71
|
|
|
log('save to: ' + path.join(config.root, processConfig.ABE_DESTINATION)) |
|
72
|
|
|
var files = Manager.instance.getListWithStatusOnFolder(processConfig.ABE_STATUS, processConfig.ABE_PATH) |
|
73
|
|
|
|
|
74
|
|
|
log('Found ' + files.length + ' to republish') |
|
75
|
|
|
|
|
76
|
|
|
publishNext(files, files.length, function (i) { |
|
77
|
|
|
log('total ' + i + ' files') |
|
78
|
|
|
log('publish process finished ' + getTime()) |
|
79
|
|
|
process.exit(0) |
|
|
|
|
|
|
80
|
|
|
}) |
|
81
|
|
|
} |
|
82
|
|
|
|
|
83
|
|
|
init('generate-posts', |
|
84
|
|
|
{ |
|
85
|
|
|
ABE_STATUS: 'publish', |
|
86
|
|
|
ABE_PATH: '', |
|
87
|
|
|
ABE_DESTINATION: 'site' |
|
88
|
|
|
}) |
|
89
|
|
|
.then(startProcess, |
|
90
|
|
|
(msg) => { |
|
91
|
|
|
error(msg) |
|
92
|
|
|
process.exit(0) |
|
|
|
|
|
|
93
|
|
|
}) |