1 | #! /usr/bin/env node
|
2 | const {includes} = require('lodash');
|
3 | const program = require('commander');
|
4 | const path = require('path')
|
5 | const exec = require('child_process').exec;
|
6 | const AddModules = require('./utils/add_modules');
|
7 | const AddConfigs = require('./utils/add_configs');
|
8 | const AddDevModules = require('./utils/add_dev_modules');
|
9 | const AddTestSuite = require('./utils/add_testsuite');
|
10 | const UpdatePackage = require('./utils/update_package');
|
11 | const WebPackConfig = require('./utils/add_webpack_configs');
|
12 |
|
13 | console.log('TESTING 123', path.join(__dirname, '../', 'setup/webpack'))
|
14 |
|
15 | program
|
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 |
|
25 | const updatePackage = UpdatePackage(()=>{
|
26 | console.log('Setup complete');
|
27 | });
|
28 | const addTestSuite = AddTestSuite(updatePackage);
|
29 | const addConfigs = AddConfigs(addTestSuite);
|
30 | const webPackConfig = WebPackConfig(addConfigs);
|
31 | const addDevModules = AddDevModules(webPackConfig);
|
32 | const addModules = AddModules(addDevModules);
|
33 |
|
34 | const checkBuildOptions = (opts)=>{
|
35 | return (val)=>includes(opts, val);
|
36 | };
|
37 |
|
38 | let checker = checkBuildOptions(program.build);
|
39 |
|
40 | const 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 |
|
51 | if (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 |
|