UNPKG

2.56 kBJavaScriptView Raw
1'use strict';
2
3var _semver = require('semver');
4
5var _fs = require('fs');
6
7var _nightingaleAppConsole = require('nightingale-app-console');
8
9var _exec = require('./commands/exec');
10
11var _flowRuntime = require('flow-runtime');
12
13var _flowRuntime2 = _interopRequireDefault(_flowRuntime);
14
15function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17const logger = _nightingaleAppConsole.logger.child('migrate');
18
19(function migrate(previousVersion, newVersion) {
20 let _previousVersionType = _flowRuntime2.default.string();
21
22 let _newVersionType = _flowRuntime2.default.string();
23
24 const _returnType = _flowRuntime2.default.return(_flowRuntime2.default.any());
25
26 _flowRuntime2.default.param('previousVersion', _previousVersionType).assert(previousVersion);
27
28 _flowRuntime2.default.param('newVersion', _newVersionType).assert(newVersion);
29
30 return new Promise((resolve, reject) => {
31 let _resolveType = _flowRuntime2.default.function();
32
33 let _rejectType = _flowRuntime2.default.function();
34
35 _flowRuntime2.default.param('resolve', _resolveType).assert(resolve);
36
37 _flowRuntime2.default.param('reject', _rejectType).assert(reject);
38
39 (0, _fs.readdir)(`${__dirname}/../migrate/`, (err, files) => {
40 let _errType = _flowRuntime2.default.nullable(_flowRuntime2.default.any());
41
42 let _filesType = _flowRuntime2.default.array(_flowRuntime2.default.string());
43
44 _flowRuntime2.default.param('err', _errType).assert(err);
45
46 _flowRuntime2.default.param('files', _filesType).assert(files);
47
48 if (err) {
49 return reject(err);
50 }
51
52 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 => {
53 let _fileType = _flowRuntime2.default.object(_flowRuntime2.default.property('version', _flowRuntime2.default.string()), _flowRuntime2.default.property('file', _flowRuntime2.default.string()));
54
55 _flowRuntime2.default.param('file', _fileType).assert(file);
56
57 logger.info('migrate', file);
58 console.log((0, _exec.runSync)('sh', [file.file], { cwd: `${__dirname}/../migrate/` }));
59 logger.infoSuccess('success', file);
60 });
61 });
62 }).then(_arg => _returnType.assert(_arg));
63})(process.argv[2], process.argv[3]).then(() => logger.infoSuccess('migration done')).catch(err => console.log(err.stack || err.message || err));
64//# sourceMappingURL=migrate.js.map
\No newline at end of file