@becomes/cms
Version:
Simple CMS for building APIs.
54 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitUtil = void 0;
var util = require("util");
var childProcess = require("child_process");
var path = require("path");
var purple_cheetah_1 = require("purple-cheetah");
var GitUtil = (function () {
function GitUtil() {
}
GitUtil.init = function () {
GitUtil.timer = setInterval(GitUtil.checkBuffer, 60000);
};
GitUtil.checkBuffer = function () {
if (GitUtil.mediaBuffer.length > 0) {
var commitMessageParts = GitUtil.mediaBuffer.map(function (e) {
return e.name;
});
if (process.env.GIT_USERNAME &&
process.env.GIT_USERNAME !== 'github-username' &&
process.env.GIT_PASSWORD &&
process.env.GIT_PASSWORD !== 'github-password' &&
process.env.GIT_REPO &&
process.env.GIT_REPO_OWNER &&
process.env.GIT_HOST) {
util
.promisify(childProcess.exec)("git add " + path.join(process.env.PROJECT_ROOT, 'uploads') + "/. && " +
("git commit -m \"CMS Media, changes to: " + commitMessageParts.join(', ') + "\" && ") +
("git push \"https://" + process.env.GIT_USERNAME + ":" + process.env.GIT_PASSWORD + "@") +
(process.env.GIT_HOST + "/" + process.env.GIT_REPO_OWNER + "/" + process.env.GIT_REPO + "\""))
.then(function (output) {
GitUtil.logger.info('git-push', "Media pushed to Git repository.");
GitUtil.mediaBuffer = [];
})
.catch(function (e) {
GitUtil.logger.error('git-push', e);
GitUtil.mediaBuffer = [];
});
}
else {
GitUtil.logger.info('checkBuffer', "Github not setup.");
GitUtil.mediaBuffer = [];
}
}
};
GitUtil.push = function (media) {
GitUtil.mediaBuffer.push(media);
};
GitUtil.logger = new purple_cheetah_1.Logger('GitUtil');
GitUtil.mediaBuffer = [];
return GitUtil;
}());
exports.GitUtil = GitUtil;
//# sourceMappingURL=git-util.js.map