123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- const _ = require('lodash');
- const exec = require('child_process').exec;
- const execFile = require('child_process').execFile;
- const { Liquid } = require('liquidjs');
- const logger = require('../logger').global;
- module.exports = {
- /**
- * @param {String} cmd
- * @returns {Promise}
- */
- exec: function (cmd) {
- return new Promise((resolve, reject) => {
- exec(cmd, function (err, stdout, /*stderr*/) {
- if (err && typeof err === 'object') {
- reject(err);
- } else {
- resolve(stdout.trim());
- }
- });
- });
- },
- /**
- * @param {String} cmd
- * @param {Array} args
- * @returns {Promise}
- */
- execFile: function (cmd, args) {
- logger.debug('CMD: ' + cmd + ' ' + (args ? args.join(' ') : ''));
- return new Promise((resolve, reject) => {
- execFile(cmd, args, function (err, stdout, /*stderr*/) {
- if (err && typeof err === 'object') {
- reject(err);
- } else {
- resolve(stdout.trim());
- }
- });
- });
- },
- /**
- * Used in objection query builder
- *
- * @param {Array} omissions
- * @returns {Function}
- */
- omitRow: function (omissions) {
- /**
- * @param {Object} row
- * @returns {Object}
- */
- return (row) => {
- return _.omit(row, omissions);
- };
- },
- /**
- * Used in objection query builder
- *
- * @param {Array} omissions
- * @returns {Function}
- */
- omitRows: function (omissions) {
- /**
- * @param {Array} rows
- * @returns {Object}
- */
- return (rows) => {
- rows.forEach((row, idx) => {
- rows[idx] = _.omit(row, omissions);
- });
- return rows;
- };
- },
- /**
- * @returns {Object} Liquid render engine
- */
- getRenderEngine: function () {
- const renderEngine = new Liquid({
- root: __dirname + '/../templates/'
- });
- /**
- * nginxAccessRule expects the object given to have 2 properties:
- *
- * directive string
- * address string
- */
- renderEngine.registerFilter('nginxAccessRule', (v) => {
- if (typeof v.directive !== 'undefined' && typeof v.address !== 'undefined' && v.directive && v.address) {
- return `${v.directive} ${v.address};`;
- }
- return '';
- });
- return renderEngine;
- }
- };
|