Spaces:
Sleeping
Sleeping
var parse = require('./parse'); | |
/** | |
* Converts a string to command line args, in particular | |
* groups together quoted values. | |
* This is a utility function to allow calling nodemon as a required | |
* library, but with the CLI args passed in (instead of an object). | |
* | |
* @param {String} string | |
* @return {Array} | |
*/ | |
function stringToArgs(string) { | |
var args = []; | |
var parts = string.split(' '); | |
var length = parts.length; | |
var i = 0; | |
var open = false; | |
var grouped = ''; | |
var lead = ''; | |
for (; i < length; i++) { | |
lead = parts[i].substring(0, 1); | |
if (lead === '"' || lead === '\'') { | |
open = lead; | |
grouped = parts[i].substring(1); | |
} else if (open && parts[i].slice(-1) === open) { | |
open = false; | |
grouped += ' ' + parts[i].slice(0, -1); | |
args.push(grouped); | |
} else if (open) { | |
grouped += ' ' + parts[i]; | |
} else { | |
args.push(parts[i]); | |
} | |
} | |
return args; | |
} | |
module.exports = { | |
parse: function (argv) { | |
if (typeof argv === 'string') { | |
argv = stringToArgs(argv); | |
} | |
return parse(argv); | |
}, | |
}; |