/
index.js
60 lines (51 loc) · 1.45 KB
/
index.js
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
const { join, extname } = require('path')
const Pavane = require('pavane')
module.exports = (acyort) => {
const { base, public: publicDir, template } = acyort.config.get()
const watches = join(base, 'templates', template)
const publics = join(base, publicDir)
const server = new Pavane(watches, publics)
acyort.cli.register('commands', {
name: 'server',
fullName: 'server',
description: 'LiveReload Server',
action: async function action(argv) {
const p = Number(argv.p) || 2222
server.subscribe = async (args) => {
const {
event,
path,
port,
trigger,
status,
} = args
if (status === 'start') {
acyort.logger.log(`Server running: http://127.0.0.1:${port}\n CTRL + C to shutdown`)
return
}
if (event) {
acyort.logger.info(`${event}: ${path.split(`${base}/templates/`)[1]}`)
acyort.store.set('status', { event, path })
try {
await this.workflow.start()
} catch (e) {
acyort.logger.error(e)
return
}
if (extname(path) === '.css') {
trigger('css')
} else {
trigger('page')
}
}
}
acyort.store.set('status', { event: 'starting' })
try {
await this.workflow.start()
server.start(p)
} catch (e) {
acyort.logger.error(e)
}
},
})
}