UNPKG

pooliot-client

Version:
64 lines (39 loc) 2.56 kB
'use strict'; 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