pooliot-client
Version:
64 lines (39 loc) • 2.56 kB
JavaScript
var _semver = require('semver');
var _fs = require('fs');
var _nightingaleAppConsole = require('nightingale-app-console');
var _exec = require('./commands/exec');
var _flowRuntime = require('flow-runtime');
var _flowRuntime2 = _interopRequireDefault(_flowRuntime);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const logger = _nightingaleAppConsole.logger.child('migrate');
(function migrate(previousVersion, newVersion) {
let _previousVersionType = _flowRuntime2.default.string();
let _newVersionType = _flowRuntime2.default.string();
const _returnType = _flowRuntime2.default.return(_flowRuntime2.default.any());
_flowRuntime2.default.param('previousVersion', _previousVersionType).assert(previousVersion);
_flowRuntime2.default.param('newVersion', _newVersionType).assert(newVersion);
return new Promise((resolve, reject) => {
let _resolveType = _flowRuntime2.default.function();
let _rejectType = _flowRuntime2.default.function();
_flowRuntime2.default.param('resolve', _resolveType).assert(resolve);
_flowRuntime2.default.param('reject', _rejectType).assert(reject);
(0, _fs.readdir)(`${__dirname}/../migrate/`, (err, files) => {
let _errType = _flowRuntime2.default.nullable(_flowRuntime2.default.any());
let _filesType = _flowRuntime2.default.array(_flowRuntime2.default.string());
_flowRuntime2.default.param('err', _errType).assert(err);
_flowRuntime2.default.param('files', _filesType).assert(files);
if (err) {
return reject(err);
}
files.filter(file => file.slice(-3) === '.sh').map(file => ({ file, version: /^([^_]+)(_.*).sh$/.exec(file)[1] })).filter(file => (0, _semver.gt)(file.version, previousVersion)).sort((a, b) => (0, _semver.gt)(a.version, b.version)).forEach(file => {
let _fileType = _flowRuntime2.default.object(_flowRuntime2.default.property('version', _flowRuntime2.default.string()), _flowRuntime2.default.property('file', _flowRuntime2.default.string()));
_flowRuntime2.default.param('file', _fileType).assert(file);
logger.info('migrate', file);
console.log((0, _exec.runSync)('sh', [file.file], { cwd: `${__dirname}/../migrate/` }));
logger.infoSuccess('success', file);
});
});
}).then(_arg => _returnType.assert(_arg));
})(process.argv[2], process.argv[3]).then(() => logger.infoSuccess('migration done')).catch(err => console.log(err.stack || err.message || err));
//# sourceMappingURL=migrate.js.map
;