@meteor-community/meteor-desktop
Version:
Build a Meteor's desktop client with hot code push.
40 lines (39 loc) • 4.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addScript;
var _fs = _interopRequireDefault(require("fs"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInJlYWRKc29uRmlsZSIsImpzb25GaWxlUGF0aCIsIkpTT04iLCJwYXJzZSIsImZzIiwicmVhZEZpbGVTeW5jIiwid3JpdGVKc29uRmlsZSIsImpzb25Db250ZW50cyIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiLCJhZGRTY3JpcHQiLCJuYW1lIiwic2NyaXB0IiwicGFja2FnZUpzb25QYXRoIiwiZmFpbCIsInBhY2thZ2VKc29uIiwic2NyaXB0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY3JpcHRzL3V0aWxzL2FkZFNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuXG5mdW5jdGlvbiByZWFkSnNvbkZpbGUoanNvbkZpbGVQYXRoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgJ1VURi04JykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gd3JpdGVKc29uRmlsZShqc29uRmlsZVBhdGgsIGpzb25Db250ZW50cykge1xuICAgIHRyeSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uQ29udGVudHMsIG51bGwsIDIpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZFNjcmlwdChuYW1lLCBzY3JpcHQsIHBhY2thZ2VKc29uUGF0aCwgZmFpbCkge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gcmVhZEpzb25GaWxlKHBhY2thZ2VKc29uUGF0aCk7XG4gICAgaWYgKCEocGFja2FnZUpzb24gJiYgcGFja2FnZUpzb24ubmFtZSkpIHtcbiAgICAgICAgZmFpbCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEoJ3NjcmlwdHMnIGluIHBhY2thZ2VKc29uKSkge1xuICAgICAgICBwYWNrYWdlSnNvbi5zY3JpcHRzID0ge307XG4gICAgfVxuXG4gICAgaWYgKCEobmFtZSBpbiBwYWNrYWdlSnNvbi5zY3JpcHRzKSkge1xuICAgICAgICBwYWNrYWdlSnNvbi5zY3JpcHRzW25hbWVdID0gc2NyaXB0O1xuICAgIH1cblxuICAgIGlmICghd3JpdGVKc29uRmlsZShwYWNrYWdlSnNvblBhdGgsIHBhY2thZ2VKc29uKSkge1xuICAgICAgICBmYWlsKCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBb0IsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFcEIsU0FBU0csWUFBWUEsQ0FBQ0MsWUFBWSxFQUFFO0VBQ2hDLElBQUk7SUFDQSxPQUFPQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsV0FBRSxDQUFDQyxZQUFZLENBQUNKLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztFQUM3RCxDQUFDLENBQUMsT0FBT0osQ0FBQyxFQUFFO0lBQ1IsT0FBTyxLQUFLO0VBQ2hCO0FBQ0o7QUFFQSxTQUFTUyxhQUFhQSxDQUFDTCxZQUFZLEVBQUVNLFlBQVksRUFBRTtFQUMvQyxJQUFJO0lBQ0FILFdBQUUsQ0FBQ0ksYUFBYSxDQUFDUCxZQUFZLEVBQUVDLElBQUksQ0FBQ08sU0FBUyxDQUFDRixZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLENBQUMsQ0FBQyxPQUFPVixDQUFDLEVBQUU7SUFDUixPQUFPLEtBQUs7RUFDaEI7RUFDQSxPQUFPLElBQUk7QUFDZjtBQUVlLFNBQVNhLFNBQVNBLENBQUNDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxlQUFlLEVBQUVDLElBQUksRUFBRTtFQUNuRSxNQUFNQyxXQUFXLEdBQUdmLFlBQVksQ0FBQ2EsZUFBZSxDQUFDO0VBQ2pELElBQUksRUFBRUUsV0FBVyxJQUFJQSxXQUFXLENBQUNKLElBQUksQ0FBQyxFQUFFO0lBQ3BDRyxJQUFJLENBQUMsQ0FBQztJQUNOO0VBQ0o7RUFFQSxJQUFJLEVBQUUsU0FBUyxJQUFJQyxXQUFXLENBQUMsRUFBRTtJQUM3QkEsV0FBVyxDQUFDQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0VBQzVCO0VBRUEsSUFBSSxFQUFFTCxJQUFJLElBQUlJLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDLEVBQUU7SUFDaENELFdBQVcsQ0FBQ0MsT0FBTyxDQUFDTCxJQUFJLENBQUMsR0FBR0MsTUFBTTtFQUN0QztFQUVBLElBQUksQ0FBQ04sYUFBYSxDQUFDTyxlQUFlLEVBQUVFLFdBQVcsQ0FBQyxFQUFFO0lBQzlDRCxJQUFJLENBQUMsQ0FBQztFQUNWO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=