From 820ef724c849498f1cab3dd3d0b8dd78ee9ea152 Mon Sep 17 00:00:00 2001 From: Daniel Ruf Date: Thu, 25 Jul 2019 08:01:01 +0200 Subject: [PATCH] Refactor: remove yargs from Gulp customizer task --- gulp/tasks/customizer.js | 7 +++---- gulp/utils.js | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/gulp/tasks/customizer.js b/gulp/tasks/customizer.js index cf327db2f..48072af43 100644 --- a/gulp/tasks/customizer.js +++ b/gulp/tasks/customizer.js @@ -14,7 +14,6 @@ var sass = require('gulp-sass'); var touch = require('touch'); var uglify = require('gulp-uglify'); var yaml = require('js-yaml').safeLoad; -var yargs = require('yargs'); var zip = require('gulp-zip'); var postcss = require('gulp-postcss'); var autoprefixer = require('autoprefixer'); @@ -22,10 +21,10 @@ var webpackStream = require('webpack-stream'); var webpack = require('webpack'); var utils = require('../utils.js'); +var processedArgv = utils.getProccessedArgv(); -var ARGS = yargs.argv; var FOUNDATION_VERSION = require('../../package.json').version; -var OUTPUT_DIR = ARGS.output || 'custom-build'; +var OUTPUT_DIR = processedArgv.values['--output'] || 'custom-build'; var CUSTOMIZER_CONFIG; var MODULE_LIST; var VARIABLE_LIST; @@ -55,7 +54,7 @@ var WEBPACK_CONFIG = { // Load the configuration file for the customizer. It's a list of modules to load and Sass variables to override gulp.task('customizer:loadConfig', function(done) { fs.readFile('customizer/config.yml', function(err, data) { - var moduleListPath = ARGS.modules || '../../customizer/complete'; + var moduleListPath = processedArgv.values['--modules'] || '../../customizer/complete'; var moduleList = require(moduleListPath); CUSTOMIZER_CONFIG = yaml(data.toString()); diff --git a/gulp/utils.js b/gulp/utils.js index 72dbd3e9c..ec9f05eba 100644 --- a/gulp/utils.js +++ b/gulp/utils.js @@ -25,6 +25,29 @@ function getUmdEntry(name, config, format) { return name; } +module.exports.getProccessedArgv = function() { + let options = process.argv.slice(2) || [] + const options_len = options.length; + + let options_processed = {} + let options_processed_last = '' + + for (let i = 0; i < options_len; i++) { + if(options[i].startsWith('-')){ + let argument_kv = options[i].split('='); + options_processed[argument_kv[0]] = argument_kv[1] ? argument_kv[1] : ''; + options_processed_last = options[i]; + } else { + options_processed[options_processed_last] = options[i]; + } + } + + return { + values: options_processed, + keys: Object.keys(options_processed) + } +} + /** * Generate an configuration object for Webpack Externals for UMD modules. * See: https://webpack.js.org/configuration/externals/#object -- 2.47.2