Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. /**
  2. *
  3. * @author Martin Herweg <martin@martinherweg.de>
  4. *
  5. */
  6.  
  7.  
  8. const memFs = require('mem-fs');
  9. const argv = require('yargs').argv;
  10. const editor = require('mem-fs-editor');
  11. const inquirer = require('inquirer');
  12. const path = require('path');
  13. const pkg = require('../package.json');
  14.  
  15.  
  16. function createModule(moduleName) {
  17. var store = memFs.create();
  18. var fs = editor.create(store);
  19.  
  20. const srcPath = path.resolve(pkg.srcPaths.views);
  21. const dist = {
  22. path: moduleName.includes('/') ? moduleName.split('/')[0] + '/' : '',
  23. name: moduleName.includes('/') ? '_' + moduleName.split('/')[1] : `${moduleName}/_${moduleName}`,
  24. template: moduleName.includes('/') ? moduleName.split('/')[1] : `${moduleName}`,
  25. };
  26. const fileName = dist.path + dist.name;
  27.  
  28. try {
  29. fs.copyTpl(path.resolve(__dirname, './module/_script.js'), `${srcPath}/modules/${fileName}.scripts.js`, {
  30. moduleName: dist.template,
  31. });
  32. console.log(`${srcPath}/modules/${fileName}.scripts.js`);
  33.  
  34. fs.copyTpl(path.resolve(__dirname, './module/_style.scss'), `${srcPath}/modules/${fileName}.styles.scss`, {
  35. moduleName: dist.template,
  36. });
  37.  
  38. fs.copyTpl(path.resolve(__dirname, './module/_template.blade.php'), `${srcPath}/modules/${fileName}-template.blade.php`, {
  39. moduleName: dist.template,
  40. });
  41.  
  42. console.log('Everything created');
  43. fs.commit(function(done) {
  44. console.log('done');
  45. });
  46. } catch(e) { console.error(e); }
  47. }
  48.  
  49. if(argv._) {
  50. return createModule(argv._[0]);
  51. }
  52.  
  53. inquirer
  54. .prompt([
  55. {
  56. type: 'input',
  57. name: 'moduleName',
  58. message: 'Please input module name',
  59. default: 'module',
  60. },
  61. ])
  62. .then(async (answers) => {
  63. createModule(answers.moduleName);
  64. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement