UNPKG

1.71 kBJavaScriptView Raw
1const fs = require('fs')
2const inquirer = require('inquirer');
3const cpFile = require('cp-file')
4const path = require('path')
5
6var logger = require('../util/logger');
7var getTemplatePath = require('./lib/getTemplatePath');
8var taskName = 'new file'
9
10module.exports = function(extensionName, newfileName){
11 if(extensionName){
12 let source = getTemplatePath(extensionName)
13 if(!source.ret){
14 //若未找到指定的模板文件.
15 inquirer.prompt([{
16 type: 'confirm',
17 message: 'The template file of your extension is not found, Create an empty newfile anyway?',
18 name: 'ok'
19 }]).then(answers => {
20 if (answers.ok) {
21 copyTemplateFile(source['path'], extensionName, newfileName)
22 }
23 })
24 } else {
25 copyTemplateFile(source['path'], extensionName, newfileName)
26 }
27 } else {
28 logger.fail('Extension name of newfile is require.', taskName)
29 }
30}
31
32function copyTemplateFile(templatePath, extensionName, newfileName){
33 newfileName = newfileName || 'newfile'
34
35 let cwd = process.cwd()
36 let target = path.resolve(cwd, './', newfileName + '.' + extensionName);
37 let copyAction = function(){
38 cpFile(templatePath, target, {
39 overwrite: true
40 })
41 .then(() => {
42 let fileRelpath = target.replace(cwd, '')
43 logger.success(`file ${fileRelpath} created.`, taskName)
44 })
45 .catch((err)=>{
46 logger.fail(JSON.stringify(err), taskName)
47 })
48 }
49
50 if(fs.existsSync(target)){
51 //若有同名文件已存在,提示是否覆盖.
52 inquirer.prompt([{
53 type: 'confirm',
54 message: 'There is a file with the same name at the target location, overwrite it?',
55 name: 'ok'
56 }]).then(answers => {
57 if (answers.ok) {
58 copyAction()
59 }
60 })
61 } else {
62 copyAction()
63 }
64}