-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
68 lines (63 loc) · 1.42 KB
/
main.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
61
62
63
64
65
66
67
68
const ora = require('ora')
const showTitle = require('./src/ui/titleUI')
const { showConfig, configInquirer } = require('./src/ui/configUI')
const { actionInquirer } = require('./src/ui/actionUI')
const joinImgs = require('./src/core')
let spinner
async function main () {
await showTitle()
spinner = ora('准备中').start()
exec().finally(() => selectAction())
}
function exec () {
spinner.text = '图片处理中'
return joinImgs().then(({ code, desc }) => {
if (code === 0) {
spinner.succeed(`拼接成功: ${desc}`)
return true
}
if (code === 1) {
spinner.stop()
return config()
}
if (code === 2) {
spinner.warn(`未找到要拼接的图片\n${desc}`)
return true
}
throw new Error(desc)
}).catch(err => {
spinner.error(`拼接失败: \n${err}`)
return true
})
}
function config () {
return configInquirer().then(() => {
spinner.succeed('参数设置完成')
return true
})
}
function selectAction () {
console.log()
actionInquirer().then(answers => {
switch (answers.action) {
case 'exit':
return false
case 'exec':
return exec()
case 'config':
return config()
case 'config-show':
return showConfig()
default:
return false
}
}).then(next => {
if (next) {
selectAction()
}
}).catch(err => {
spinner.error(err)
selectAction()
})
}
main()