UNPKG

angle

Version:

General purpose command-line tool for A-Frame.

64 lines (57 loc) 1.54 kB
/* global find, ls, sed */ require('shelljs/global'); var exec = require('child_process').exec; var fs = require('fs'); var inquirer = require('inquirer'); var titleCase = require('title-case'); var nunjucks = require('nunjucks'); var path = require('path'); var slug = require('slug'); var aframeVersion = '0.9.2'; function initscene () { console.log('Initializing A-Frame scene'); var template = path.resolve(__dirname, '../templates/scene'); cp('-r', template, './.scene'); cd('.scene'); customize().then(function (shortTitle) { cd('../'); mv('.scene', shortTitle); }); } module.exports = initscene; /** * Customize component template. */ function customize () { var q1 = { name: 'title', message: 'What is your scene\'s title? (e.g., Forest Scene)', type: 'input', default: 'aframe-boilerplate' }; var q2 = { name: 'handControls', message: 'Do you want tracked controls with hand models?', type: 'confirm', default: false }; // Go. return new Promise(function (resolve) { inquirer.prompt([q1, q2]).then(function (answers) { // Slugify. answers.shortTitle = answers.title.toLowerCase().replace(/\s+/g, '-' ); run(answers) resolve(answers.shortTitle); }); }); /** * Do all the string replacements. */ function run (answers) { answers.aframeVersion = aframeVersion; ls(['index.html', 'package.json', 'README.md']).forEach(function (file) { fs.writeFileSync(file, nunjucks.render(file, answers)); }); } }