mirror of
https://github.com/SrIzan10/nodemon.git
synced 2026-05-01 10:55:09 +00:00
If a zero-length string is passed, it does not get properly quoted, and then it is not properly passed to the child process
103 lines
2.5 KiB
JavaScript
103 lines
2.5 KiB
JavaScript
var noop = function () { };
|
|
var path = require('path');
|
|
const semver = require('semver');
|
|
var version = process.versions.node.split('.') || [null, null, null];
|
|
|
|
var utils = (module.exports = {
|
|
semver: semver,
|
|
satisfies: test => semver.satisfies(process.versions.node, test),
|
|
version: {
|
|
major: parseInt(version[0] || 0, 10),
|
|
minor: parseInt(version[1] || 0, 10),
|
|
patch: parseInt(version[2] || 0, 10),
|
|
},
|
|
clone: require('./clone'),
|
|
merge: require('./merge'),
|
|
bus: require('./bus'),
|
|
isWindows: process.platform === 'win32',
|
|
isMac: process.platform === 'darwin',
|
|
isLinux: process.platform === 'linux',
|
|
isRequired: (function () {
|
|
var p = module.parent;
|
|
while (p) {
|
|
// in electron.js engine it happens
|
|
if (!p.filename) {
|
|
return true;
|
|
}
|
|
if (p.filename.indexOf('bin' + path.sep + 'nodemon.js') !== -1) {
|
|
return false;
|
|
}
|
|
p = p.parent;
|
|
}
|
|
|
|
return true;
|
|
})(),
|
|
home: process.env.HOME || process.env.HOMEPATH,
|
|
quiet: function () {
|
|
// nukes the logging
|
|
if (!this.debug) {
|
|
for (var method in utils.log) {
|
|
if (typeof utils.log[method] === 'function') {
|
|
utils.log[method] = noop;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
reset: function () {
|
|
if (!this.debug) {
|
|
for (var method in utils.log) {
|
|
if (typeof utils.log[method] === 'function') {
|
|
delete utils.log[method];
|
|
}
|
|
}
|
|
}
|
|
this.debug = false;
|
|
},
|
|
regexpToText: function (t) {
|
|
return t
|
|
.replace(/\.\*\\./g, '*.')
|
|
.replace(/\\{2}/g, '^^')
|
|
.replace(/\\/g, '')
|
|
.replace(/\^\^/g, '\\');
|
|
},
|
|
stringify: function (exec, args) {
|
|
// serializes an executable string and array of arguments into a string
|
|
args = args || [];
|
|
|
|
return [exec]
|
|
.concat(
|
|
args.map(function (arg) {
|
|
// if an argument contains a space, we want to show it with quotes
|
|
// around it to indicate that it is a single argument
|
|
if (arg.length > 0 && arg.indexOf(' ') === -1) {
|
|
return arg;
|
|
}
|
|
// this should correctly escape nested quotes
|
|
return JSON.stringify(arg);
|
|
})
|
|
)
|
|
.join(' ')
|
|
.trim();
|
|
},
|
|
});
|
|
|
|
utils.log = require('./log')(utils.isRequired);
|
|
|
|
Object.defineProperty(utils, 'debug', {
|
|
set: function (value) {
|
|
this.log.debug = value;
|
|
},
|
|
get: function () {
|
|
return this.log.debug;
|
|
},
|
|
});
|
|
|
|
Object.defineProperty(utils, 'colours', {
|
|
set: function (value) {
|
|
this.log.useColours = value;
|
|
},
|
|
get: function () {
|
|
return this.log.useColours;
|
|
},
|
|
});
|