123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * grunt
- * http://gruntjs.com/
- *
- * Copyright (c) 2014 "Cowboy" Ben Alman
- * Licensed under the MIT license.
- * https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
- */
- 'use strict';
- // The actual option data.
- var data = {};
- // Get or set an option value.
- var option = module.exports = function(key, value) {
- var no = key.match(/^no-(.+)$/);
- if (arguments.length === 2) {
- return (data[key] = value);
- } else if (no) {
- return data[no[1]] === false;
- } else {
- return data[key];
- }
- };
- // Initialize option data.
- option.init = function(obj) {
- return (data = obj || {});
- };
- // List of options as flags.
- option.flags = function() {
- return Object.keys(data).filter(function(key) {
- // Don't display empty arrays.
- return !(Array.isArray(data[key]) && data[key].length === 0);
- }).map(function(key) {
- var val = data[key];
- return '--' + (val === false ? 'no-' : '') + key +
- (typeof val === 'boolean' ? '' : '=' + val);
- });
- };
|