#!/usr/bin/env node const exec = require('child_process').exec; const fs = require('fs'); const lodash = require('lodash'); const mkdirp = require('mkdirp'); const path = require('path'); const pkg = require(path.join(process.cwd(), 'package.json')); const initDir = path.join(__dirname, '..', 'init'); const files = [ // Base editor / git config. '.editorconfig', '.eslintrc', '.gitignore', // Tooling config. './karma.conf.js', './rollup.config.js', './webpack.config.js', '.travis.yml', // Metadata. 'LICENSE', 'README.md', // Source. 'src/index.js', 'test/perf.js', 'test/unit.js', ]; files.forEach((file) => { let srcFile = file; // NPM Renames .gitignore to .npmignore when installing if no .npmignore exists. if (srcFile === '.gitignore') { srcFile = '.npmignore'; } const src = path.join(initDir, srcFile); const dst = path.join(process.cwd(), file); fs.readFile(src, (err, content) => { fs.exists(dst, (exists) => { if (!exists) { mkdirp(path.dirname(dst), () => { fs.writeFile(dst, lodash.template(content)(pkg)); }); } }); }); }); // Init commitizen. exec('commitizen init cz-conventional-changelog');