29 lines
840 B
JavaScript
29 lines
840 B
JavaScript
|
const exec = require('child_process').execFileSync;
|
||
|
const stat = require('fs').statSync;
|
||
|
|
||
|
const fromRoot = require('path').resolve.bind(null, __dirname, '../');
|
||
|
|
||
|
module.exports = function (grunt) {
|
||
|
grunt.registerTask('setup_kibana', function () {
|
||
|
const kbnDir = fromRoot('../kibana');
|
||
|
const kbnGitDir = fromRoot('../kibana/.git');
|
||
|
|
||
|
try {
|
||
|
if (stat(kbnGitDir).isDirectory()) {
|
||
|
exec('git', ['pull', 'origin', 'master'], { cwd: kbnDir });
|
||
|
} else {
|
||
|
throw new Error(`${kbnGitDir} is not a directory??`);
|
||
|
}
|
||
|
} catch (error) {
|
||
|
if (error.code === 'ENOENT') {
|
||
|
exec('git', ['clone', 'https://github.com/elastic/kibana.git', kbnDir]);
|
||
|
} else {
|
||
|
throw error;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
exec('npm', ['prune'], { cwd: kbnDir });
|
||
|
exec('npm', ['install'], { cwd: kbnDir });
|
||
|
});
|
||
|
};
|