-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathactions.js
More file actions
117 lines (100 loc) · 2.23 KB
/
actions.js
File metadata and controls
117 lines (100 loc) · 2.23 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const fs = require('fs');
const path = require('path');
const chalk = require('chalk');
const open = require('open');
const {
printMessages,
printSuccess,
getTemplates,
writeTemplate,
renameTemplate,
useTemplate,
delTemplate,
exit
} = require('./helpers');
const Directory = path.resolve(__dirname, './templates');
async function onList() {
const templates = await getTemplates(Directory);
const messages = templates.map(template => {
const prefix = chalk.green.bold('* ');
return prefix + template;
});
printMessages(messages);
}
function onUse(template, name) {
useTemplate(Directory, template, name);
}
async function onAdd(template, name) {
try {
const stat = fs.statSync(template);
if (!stat.isFile()) {
exit(template + ' is not a file!');
}
if (!name) {
name = path.basename(template);
}
const file = path.join(Directory, name);
const result = await writeTemplate(template, file);
result && printSuccess('Add template success!');
} catch (err) {
exit(template + ' does not exist!');
}
}
function onDelete(template) {
const file = path.join(Directory, template);
if (!fs.existsSync(file)) {
exit(template + ' does not exist!');
} else {
delTemplate(file);
}
}
function onRename(template, name) {
const file = path.join(Directory, template);
if (!fs.existsSync(file)) {
exit(template + ' does not exist!');
} else {
renameTemplate(file, Directory, name);
}
}
function onView(template) {
const file = path.join(Directory, template);
if (!fs.existsSync(file)) {
exit(template + ' does not exist!');
}
open(file);
}
function onInfo(template) {
const file = path.join(Directory, template);
if (!fs.existsSync(file)) {
exit(template + ' does not exist!');
}
try {
const { birthtime, ctime } = fs.statSync(file);
const info = {
name: {
value: template
},
directory: {
value: Directory
},
'Creation time': {
value: birthtime
},
'Modification time': {
value: ctime
}
}
console.table(info);
} catch (e) {
exit(e);
}
}
module.exports = {
onList,
onUse,
onAdd,
onDelete,
onRename,
onView,
onInfo
};