UNPKG

pruno-cli

Version:

A CLI tool for scaffolding projects that use the pruno build tool and a generator for creating components.

62 lines (52 loc) 1.61 kB
import {pwd, cp, mv} from "shelljs"; import {join} from "path"; import {log} from "../logger"; import {save, saveDev} from "../utils/install"; import buildPath from "../utils/build-path"; import addMixes from "../utils/add-mixes"; import Generator from "../generator"; export default function (scaffold, options) { switch(scaffold.toLowerCase()) { case 'backbone': generateBackbone(options); break; case 'react': generateReact(options); break; default: generateDefaults(options); break; } } var generateReact = (options) => { save([ 'react', 'react-router', 'fluxd' ]) .then(() => log('Installed front-end assets for React.')) .catch(err => log(err)); addMixes(['del', 'js', 'stylus', 'http', 'publish', 'jade'], { js: {es6: true}, stylus: {normalize: true, 'font-awesome': true} }); cp('-Rf', join(__dirname, '..', 'frameworks', 'react', 'app', '*'), join(pwd(), options.src)); }; var generateBackbone = (options) => { save([ 'backbone', 'jquery', 'lodash' ]) .then(() => log('Installed front-end assets for Backbone.')) .catch(err => log(err)); saveDev(['hbsfy', 'handlebars']); addMixes(['del', 'js', 'stylus', 'http', 'publish', 'jade'], { js: {es6: true, handlebars: true}, stylus: {normalize: true, 'font-awesome': true} }); cp('-Rf', join(__dirname, '..', 'frameworks', 'backbone', 'app', '*'), join(pwd(), options.src)); }; var generateDefaults = (options) => { cp('-Rf', join(__dirname, '..', 'frameworks', 'defaults', 'app', '*'), join(pwd(), options.src)); };