kibana/tasks/build/archives.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

2015-08-14 06:16:54 +02:00
module.exports = function createPackages(grunt) {
let { config } = grunt;
let { resolve, relative } = require('path');
2015-08-14 06:16:54 +02:00
let { execFile } = require('child_process');
let { all, fromNode } = require('bluebird');
let buildPath = resolve(config.get('root'), 'build');
2015-08-14 06:16:54 +02:00
let exec = async (cmd, args) => {
grunt.log.writeln(` > ${cmd} ${args.join(' ')}`);
await fromNode(cb => execFile(cmd, args, { cwd: buildPath }, cb));
2015-08-14 06:16:54 +02:00
};
2015-08-14 20:53:26 +02:00
2015-08-14 06:16:54 +02:00
let archives = async (platform) => {
// kibana.tar.gz
await exec('tar', ['-zchf', relative(buildPath, platform.tarPath), platform.buildName]);
2015-08-14 06:16:54 +02:00
// kibana.zip
if (/windows/.test(platform.name)) {
await exec('zip', ['-rq', '-ll', relative(buildPath, platform.zipPath), platform.buildName]);
2015-08-14 06:16:54 +02:00
} else {
await exec('zip', ['-rq', relative(buildPath, platform.zipPath), platform.buildName]);
2015-08-14 06:16:54 +02:00
}
};
grunt.registerTask('_build:archives', function () {
2015-08-14 06:16:54 +02:00
all(
grunt.config.get('platforms')
.map(async platform => {
grunt.file.mkdir('target');
await archives(platform);
})
)
.nodeify(this.async());
});
};