UNPKG

2.01 kBJavaScriptView Raw
1#! /usr/bin/env node
2const {includes} = require('lodash');
3const program = require('commander');
4const path = require('path')
5const exec = require('child_process').exec;
6const AddModules = require('./utils/add_modules');
7const AddConfigs = require('./utils/add_configs');
8const AddDevModules = require('./utils/add_dev_modules');
9const AddTestSuite = require('./utils/add_testsuite');
10const UpdatePackage = require('./utils/update_package');
11const WebPackConfig = require('./utils/add_webpack_configs');
12
13console.log('TESTING 123', path.join(__dirname, '../', 'setup/webpack'))
14
15program
16 .version('1.0.0')
17 .description('Set up for webpack & Front-end in Morse sites')
18 .option('-su, --setup [env]', 'Adds setup options rails || node, will default to rails', /^(rails|node)$/i)
19 .option('-y, --yarn', 'Starts yarn')
20 .option('-b, --build <items>', 'Adds build options, options are react, s3, bootstrap, css', (val)=>val.split(','))
21 .option('-t, --testing [framework]', 'Adds testing options, options are jest, jasmine', /^(jasmine|jest)$/i)
22 .option('-w, --webpacker', 'Adds webpacker install')
23 .parse(process.argv);
24
25const updatePackage = UpdatePackage(()=>{
26 console.log('Setup complete');
27});
28const addTestSuite = AddTestSuite(updatePackage);
29const addConfigs = AddConfigs(addTestSuite);
30const webPackConfig = WebPackConfig(addConfigs);
31const addDevModules = AddDevModules(webPackConfig);
32const addModules = AddModules(addDevModules);
33
34const checkBuildOptions = (opts)=>{
35 return (val)=>includes(opts, val);
36};
37
38let checker = checkBuildOptions(program.build);
39
40const addYarn = (checker, program)=>{
41 if (program.yarn){
42 exec('yarn init --yes', (error)=>{
43 if (error) return console.error(error);
44 addModules(checker, program);
45 });
46 } else {
47 addModules(checker, program);
48 }
49};
50
51if (program.webpacker){
52 exec('rails webpacker:install', (error)=>{
53 if (error) return console.error(error);
54 addYarn(checker, program);
55 });
56} else {
57 addYarn(checker, program);
58};
59
60