ngx
Version:
The Data-driven nginx configuration manager
172 lines (128 loc) • 4.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.parseOptions = exports.build = exports.start = exports.stop = exports.reload = exports.test = undefined;
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var parseOptions = exports.parseOptions = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(_ref2) {
var cwd = _ref2.cwd,
optionEnv = _ref2.env,
user = _ref2.user,
group = _ref2.group;
var _ref3, src, dest, preset, entry, env, map, data, error;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return new _optionManager2.default({
cwd: cwd,
env: optionEnv
}).get();
case 2:
_ref3 = _context.sent;
src = _ref3.src;
dest = _ref3.dest;
preset = _ref3.preset;
entry = _ref3.entry;
env = _ref3.env;
map = _ref3.map;
_context.next = 11;
return (0, _file.readYaml)(preset);
case 11:
data = _context.sent;
if (!(!data.user && !user)) {
_context.next = 15;
break;
}
error = new Error('user must be defined to prevent further problems, you can specify it either:\n - with cli option "--user <user>:<group>"\n - or in preset file');
return _context.abrupt('return', _promise2.default.reject(error));
case 15:
// cli user has higher priority
if (user) {
data.user = user + ' ' + group;
}
data.env = env;
return _context.abrupt('return', {
src: src,
dest: dest,
data: data,
preset: preset,
entry: entry,
map: map
});
case 18:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
return function parseOptions(_x) {
return _ref.apply(this, arguments);
};
}();
var _builder = require('./builder');
var _builder2 = _interopRequireDefault(_builder);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _nginxCommand = require('./nginx-command');
var _nginxCommand2 = _interopRequireDefault(_nginxCommand);
var _optionManager = require('./option-manager');
var _optionManager2 = _interopRequireDefault(_optionManager);
var _file = require('./util/file');
var _process = require('./util/process');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var save = function save(opts) {
return (0, _file.saveUpstreams)(opts.dest, opts.data.upstreams);
};
var remove = function remove(opts) {
return (0, _file.removeSavedUpstreams)(opts.dest);
};
var test = exports.test = c('test', '{{cyan test}} configurations ...');
var reload = exports.reload = c('reload', '{{cyan reload}} nginx ...', save);
var stop = exports.stop = c('stop', '{{cyan stop}} nginx ...', remove);
var start = exports.start = c('start', '{{cyan start}} nginx ...', save);
exports.build = _builder2.default;
function c(type, message, after) {
var _this = this;
return function () {
var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(opts) {
var dest, entry;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
(0, _process.log)(message);
dest = opts.dest, entry = opts.entry;
_context2.next = 4;
return _process.spawn.apply(undefined, (0, _toConsumableArray3.default)(_nginxCommand2.default[type](dest, entry)));
case 4:
if (!after) {
_context2.next = 7;
break;
}
_context2.next = 7;
return after(opts);
case 7:
return _context2.abrupt('return', opts);
case 8:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this);
}));
return function (_x2) {
return _ref4.apply(this, arguments);
};
}();
}