12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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);
- },
- };
|