1 | const fs = require('fs')
|
2 | const inquirer = require('inquirer');
|
3 | const cpFile = require('cp-file')
|
4 | const path = require('path')
|
5 |
|
6 | var logger = require('../util/logger');
|
7 | var getTemplatePath = require('./lib/getTemplatePath');
|
8 | var taskName = 'new file'
|
9 |
|
10 | module.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 |
|
32 | function 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 | }
|