diff --git a/README.md b/README.md index e6f97f3..5b10d97 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ npm i -g @stormid/scaffold-cli ## Usage ``` scaffold +scaffolf [--template=typescript] ``` ## Options @@ -18,5 +19,6 @@ scaffold --name The application name. --cwd A directory to use instead of $PWD. ---install Installs dependencies. [boolean] [default: true] +--install Installs dependencies. [boolean] [default: true] +--template Templatename you want to scaffold ["default"|"typescript"] [default: "default"] ``` diff --git a/lib/commands/index.js b/lib/commands/index.js index 35c3a33..75e9827 100644 --- a/lib/commands/index.js +++ b/lib/commands/index.js @@ -5,7 +5,11 @@ const gittar = require('gittar'); const fs = require('fs-extra'); const Table = require('cli-table'); const isValidName = require('validate-npm-package-name'); -const REPO = 'stormid/scaffold'; + +const REPOS = { + default: 'stormid/scaffold', + typescript: 'damienasny/scaffold-ts' +}; module.exports = async function(dest, argv) { if (!dest) { @@ -32,7 +36,7 @@ module.exports = async function(dest, argv) { return error(errors.map(capitalize).join('\n ~ '), 1); } - let archive = await gittar.fetch(REPO).catch(err => { + let archive = await gittar.fetch(REPOS[argv.template]).catch(err => { err = err || { message: 'An error occured while fetching the scaffold from Github' }; return error( err.code === 404 @@ -50,7 +54,11 @@ module.exports = async function(dest, argv) { }, }); - await fs.mkdir(`${target}/src/assets`); + try { + await fs.mkdir(`${target}/src/assets`); + } catch (e) { + console.log(e) + } let pkgData, pkgFile = resolve(target, 'package.json'); diff --git a/lib/index.js b/lib/index.js index 9f6c808..d85cd4b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -27,5 +27,6 @@ sade('scaffold [dest]', true) .option('--cwd', 'A directory to use instead of $PWD', '.') .option('--install', 'Install dependencies', true) .option('-v, --verbose', 'Verbose output') + .option('--template', 'The template name you want to scaffold', 'default') .action(require('./commands')) .parse(process.argv); \ No newline at end of file