@mjcctech/meteor-desktop
Version:
Build a Meteor's desktop client with hot code push.
50 lines (39 loc) • 3.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addScript;
var _fs = _interopRequireDefault(require("fs"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function readJsonFile(jsonFilePath) {
try {
return JSON.parse(_fs.default.readFileSync(jsonFilePath, 'UTF-8'));
} catch (e) {
return false;
}
}
function writeJsonFile(jsonFilePath, jsonContents) {
try {
_fs.default.writeFileSync(jsonFilePath, JSON.stringify(jsonContents, null, 2));
} catch (e) {
return false;
}
return true;
}
function addScript(name, script, packageJsonPath, fail) {
const packageJson = readJsonFile(packageJsonPath);
if (!(packageJson && packageJson.name)) {
fail();
return;
}
if (!('scripts' in packageJson)) {
packageJson.scripts = {};
}
if (!(name in packageJson.scripts)) {
packageJson.scripts[name] = script;
}
if (!writeJsonFile(packageJsonPath, packageJson)) {
fail();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY3JpcHRzL3V0aWxzL2FkZFNjcmlwdC5qcyJdLCJuYW1lcyI6WyJyZWFkSnNvbkZpbGUiLCJqc29uRmlsZVBhdGgiLCJKU09OIiwicGFyc2UiLCJmcyIsInJlYWRGaWxlU3luYyIsImUiLCJ3cml0ZUpzb25GaWxlIiwianNvbkNvbnRlbnRzIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsImFkZFNjcmlwdCIsIm5hbWUiLCJzY3JpcHQiLCJwYWNrYWdlSnNvblBhdGgiLCJmYWlsIiwicGFja2FnZUpzb24iLCJzY3JpcHRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxTQUFTQSxZQUFULENBQXNCQyxZQUF0QixFQUFvQztBQUNoQyxNQUFJO0FBQ0EsV0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdDLFlBQUdDLFlBQUgsQ0FBZ0JKLFlBQWhCLEVBQThCLE9BQTlCLENBQVgsQ0FBUDtBQUNILEdBRkQsQ0FFRSxPQUFPSyxDQUFQLEVBQVU7QUFDUixXQUFPLEtBQVA7QUFDSDtBQUNKOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJOLFlBQXZCLEVBQXFDTyxZQUFyQyxFQUFtRDtBQUMvQyxNQUFJO0FBQ0FKLGdCQUFHSyxhQUFILENBQWlCUixZQUFqQixFQUErQkMsSUFBSSxDQUFDUSxTQUFMLENBQWVGLFlBQWYsRUFBNkIsSUFBN0IsRUFBbUMsQ0FBbkMsQ0FBL0I7QUFDSCxHQUZELENBRUUsT0FBT0YsQ0FBUCxFQUFVO0FBQ1IsV0FBTyxLQUFQO0FBQ0g7O0FBQ0QsU0FBTyxJQUFQO0FBQ0g7O0FBRWMsU0FBU0ssU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUJDLE1BQXpCLEVBQWlDQyxlQUFqQyxFQUFrREMsSUFBbEQsRUFBd0Q7QUFDbkUsUUFBTUMsV0FBVyxHQUFHaEIsWUFBWSxDQUFDYyxlQUFELENBQWhDOztBQUNBLE1BQUksRUFBRUUsV0FBVyxJQUFJQSxXQUFXLENBQUNKLElBQTdCLENBQUosRUFBd0M7QUFDcENHLElBQUFBLElBQUk7QUFDSjtBQUNIOztBQUVELE1BQUksRUFBRSxhQUFhQyxXQUFmLENBQUosRUFBaUM7QUFDN0JBLElBQUFBLFdBQVcsQ0FBQ0MsT0FBWixHQUFzQixFQUF0QjtBQUNIOztBQUVELE1BQUksRUFBRUwsSUFBSSxJQUFJSSxXQUFXLENBQUNDLE9BQXRCLENBQUosRUFBb0M7QUFDaENELElBQUFBLFdBQVcsQ0FBQ0MsT0FBWixDQUFvQkwsSUFBcEIsSUFBNEJDLE1BQTVCO0FBQ0g7O0FBRUQsTUFBSSxDQUFDTixhQUFhLENBQUNPLGVBQUQsRUFBa0JFLFdBQWxCLENBQWxCLEVBQWtEO0FBQzlDRCxJQUFBQSxJQUFJO0FBQ1A7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcyc7XG5cbmZ1bmN0aW9uIHJlYWRKc29uRmlsZShqc29uRmlsZVBhdGgpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCAnVVRGLTgnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB3cml0ZUpzb25GaWxlKGpzb25GaWxlUGF0aCwganNvbkNvbnRlbnRzKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb25Db250ZW50cywgbnVsbCwgMikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkU2NyaXB0KG5hbWUsIHNjcmlwdCwgcGFja2FnZUpzb25QYXRoLCBmYWlsKSB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSByZWFkSnNvbkZpbGUocGFja2FnZUpzb25QYXRoKTtcbiAgICBpZiAoIShwYWNrYWdlSnNvbiAmJiBwYWNrYWdlSnNvbi5uYW1lKSkge1xuICAgICAgICBmYWlsKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISgnc2NyaXB0cycgaW4gcGFja2FnZUpzb24pKSB7XG4gICAgICAgIHBhY2thZ2VKc29uLnNjcmlwdHMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAoIShuYW1lIGluIHBhY2thZ2VKc29uLnNjcmlwdHMpKSB7XG4gICAgICAgIHBhY2thZ2VKc29uLnNjcmlwdHNbbmFtZV0gPSBzY3JpcHQ7XG4gICAgfVxuXG4gICAgaWYgKCF3cml0ZUpzb25GaWxlKHBhY2thZ2VKc29uUGF0aCwgcGFja2FnZUpzb24pKSB7XG4gICAgICAgIGZhaWwoKTtcbiAgICB9XG59XG4iXX0=