mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
Adding support for jruby and mri.
This commit is contained in:
parent
c8b7e7ecf7
commit
e5c1ba64bd
14 changed files with 160 additions and 28 deletions
|
@ -12,6 +12,9 @@ module.exports = function (grunt) {
|
|||
target: __dirname + '/target', // location of the compressed build targets
|
||||
buildApp: __dirname + '/build/kibana', // build directory for the app
|
||||
|
||||
jrubyVersion: '1.7.14',
|
||||
jrubyPath: __dirname + '/.jruby',
|
||||
|
||||
unitTestDir: __dirname + '/test/unit',
|
||||
testUtilsDir: __dirname + '/test/utils',
|
||||
bowerComponentsDir: __dirname + '/src/kibana/bower_components',
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
"istanbul": "~0.2.4",
|
||||
"load-grunt-config": "~0.7.0",
|
||||
"lodash": "~2.4.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"mocha": "~1.20.1",
|
||||
"path-browserify": "0.0.0",
|
||||
"progress": "^1.1.8",
|
||||
"request": "^2.40.0",
|
||||
"requirejs": "~2.1.14",
|
||||
"rjs-build-analysis": "0.0.3"
|
||||
"rjs-build-analysis": "0.0.3",
|
||||
"tar": "^1.0.1"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "grunt test",
|
||||
|
|
|
@ -58,7 +58,7 @@ module Kibana
|
|||
end
|
||||
|
||||
get '/throw' do
|
||||
raise "SHIT!"
|
||||
raise "Oops!"
|
||||
end
|
||||
|
||||
# Routes go here
|
||||
|
|
|
@ -1,11 +1,25 @@
|
|||
module.exports = function (grunt) {
|
||||
var jrubyPath = grunt.config.get('jrubyPath');
|
||||
var jruby = jrubyPath + '/bin/jruby';
|
||||
var cmd = grunt.config.get('src') + '/server/bin/kibana';
|
||||
|
||||
var config = {
|
||||
kibana_server: {
|
||||
mri_server: {
|
||||
options: {
|
||||
wait: false
|
||||
// quiet: true
|
||||
},
|
||||
cmd: 'src/server/bin/kibana'
|
||||
cmd: cmd
|
||||
},
|
||||
jruby_server: {
|
||||
options: {
|
||||
wait: false
|
||||
// quiet: true
|
||||
},
|
||||
cmd: jruby,
|
||||
args: [
|
||||
cmd
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
module.exports = function (grunt) {
|
||||
var kibana_server_tasks = [];
|
||||
if (grunt.option('use-mri')) {
|
||||
kibana_server_tasks = [
|
||||
'stop:mri_server',
|
||||
'run:mri_server'
|
||||
];
|
||||
} else {
|
||||
kibana_server_tasks = [
|
||||
'stop:jruby_server',
|
||||
'run:jruby_server'
|
||||
];
|
||||
}
|
||||
var config = {
|
||||
test: {
|
||||
files: [
|
||||
|
@ -31,10 +43,7 @@ module.exports = function (grunt) {
|
|||
'src/server/**/*.rb',
|
||||
'src/server/**/*.yml'
|
||||
],
|
||||
tasks: [
|
||||
'stop:kibana_server',
|
||||
'run:kibana_server'
|
||||
],
|
||||
tasks: kibana_server_tasks,
|
||||
options: {
|
||||
spawn: false
|
||||
}
|
||||
|
|
20
tasks/dev.js
20
tasks/dev.js
|
@ -1,9 +1,21 @@
|
|||
module.exports = function (grunt) {
|
||||
grunt.registerTask('dev', [
|
||||
var useMRI = grunt.option('use-mri');
|
||||
var tasks = [
|
||||
'less',
|
||||
'jade',
|
||||
'run:kibana_server',
|
||||
'jade'
|
||||
];
|
||||
if (useMRI) {
|
||||
tasks = tasks.concat(['run:mri_server']);
|
||||
} else {
|
||||
tasks = tasks.concat([
|
||||
'download_jruby',
|
||||
'install_gems',
|
||||
'run:jruby_server',
|
||||
'wait_for_jruby'
|
||||
]);
|
||||
}
|
||||
grunt.registerTask('dev', tasks.concat([
|
||||
'maybe_start_server',
|
||||
'watch'
|
||||
]);
|
||||
]));
|
||||
};
|
||||
|
|
44
tasks/download_jruby.js
Normal file
44
tasks/download_jruby.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
var zlib = require('zlib');
|
||||
var tar = require('tar');
|
||||
var request = require('request');
|
||||
var mkdirp = require('mkdirp');
|
||||
var ProgressBar = require('progress');
|
||||
var fs = require('fs');
|
||||
|
||||
module.exports = function (grunt) {
|
||||
grunt.registerTask('download_jruby', 'Downloads and installs jruby', function () {
|
||||
var done = this.async();
|
||||
var jrubyPath = grunt.config.get('jrubyPath');
|
||||
var jrubyVersion = grunt.config.get('jrubyVersion');
|
||||
var url = 'http://jruby.org.s3.amazonaws.com/downloads/' + jrubyVersion + '/jruby-bin-' + jrubyVersion + '.tar.gz';
|
||||
|
||||
fs.stat(jrubyPath, function (err, stat) {
|
||||
if (err) {
|
||||
mkdirp(jrubyPath, function (err) {
|
||||
if (err) return done(err);
|
||||
var unzip = zlib.createGunzip();
|
||||
var out = tar.Extract({ path: jrubyPath, strip: 1 });
|
||||
out.on('close', done).on('error', done);
|
||||
var req = request.get(url);
|
||||
var bar;
|
||||
req.on('response', function (resp) {
|
||||
var total = parseInt(resp.headers['content-length'], 10);
|
||||
bar = new ProgressBar('[:bar] :percent :etas', {
|
||||
complete: '=',
|
||||
incomplete: ' ',
|
||||
width: 80,
|
||||
clear: true,
|
||||
total: total
|
||||
});
|
||||
});
|
||||
req.on('data', function (buffer) {
|
||||
bar.tick(buffer.length);
|
||||
});
|
||||
req.pipe(unzip).pipe(out);
|
||||
});
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
20
tasks/install_gems.js
Normal file
20
tasks/install_gems.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
var child_process = require('child_process');
|
||||
var join = require('path').join;
|
||||
module.exports = function (grunt) {
|
||||
grunt.registerTask('install_gems', 'Install Ruby Gems', function () {
|
||||
var done = this.async();
|
||||
var gemfile = join(grunt.config.get('src'), 'server', 'Gemfile');
|
||||
var jrubyPath = grunt.config.get('jrubyPath');
|
||||
var jruby = jrubyPath + '/bin/jruby -S';
|
||||
var command = jruby + ' gem install bundler && ' + jruby + ' bundle install --gemfile ' + gemfile;
|
||||
child_process.exec(command, function (err, stdout, stderr) {
|
||||
if (err) {
|
||||
grunt.log.error(stderr);
|
||||
return done(err);
|
||||
}
|
||||
grunt.log.writeln(stdout);
|
||||
return done();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
@ -1,20 +1,34 @@
|
|||
var _ = require('lodash');
|
||||
module.exports = function (grunt) {
|
||||
/* jshint scripturl:true */
|
||||
grunt.registerTask('test', [
|
||||
var rubyTasks;
|
||||
if (grunt.option('use-mri')) {
|
||||
rubyTasks = [
|
||||
'run:mri_server',
|
||||
];
|
||||
} else {
|
||||
rubyTasks = [
|
||||
'download_jruby',
|
||||
'install_gems',
|
||||
'run:jruby_server',
|
||||
'wait_for_jruby'
|
||||
];
|
||||
}
|
||||
grunt.registerTask('test', rubyTasks.concat([
|
||||
'maybe_start_server',
|
||||
'jade',
|
||||
'mocha:unit',
|
||||
'jshint'
|
||||
]);
|
||||
]));
|
||||
|
||||
grunt.registerTask('coverage', [
|
||||
grunt.registerTask('coverage', rubyTasks.concat([
|
||||
'blanket',
|
||||
'maybe_start_server',
|
||||
'mocha:coverage'
|
||||
]);
|
||||
]));
|
||||
|
||||
grunt.registerTask('test:watch', [
|
||||
grunt.registerTask('test:watch', rubyTasks.concat([
|
||||
'maybe_start_server',
|
||||
'watch:test'
|
||||
]);
|
||||
]));
|
||||
};
|
||||
|
|
18
tasks/wait_for_jruby.js
Normal file
18
tasks/wait_for_jruby.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
var request = require('request');
|
||||
module.exports = function (grunt) {
|
||||
|
||||
grunt.registerTask('wait_for_jruby', 'Is it started yet?', function () {
|
||||
var done = this.async();
|
||||
function checkJRuby() {
|
||||
request('http://127.0.0.1:5601', function (err, resp) {
|
||||
if (err) {
|
||||
setTimeout(checkJRuby, 1000);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
checkJRuby();
|
||||
|
||||
});
|
||||
};
|
|
@ -3,7 +3,8 @@ var join = require('path').join;
|
|||
module.exports = function (grunt) {
|
||||
grunt.registerTask('warble', 'Creates an executable jar.', function () {
|
||||
var done = this.async();
|
||||
var command = 'jruby -S warble';
|
||||
var jrubyPath = grunt.config.get('jrubyPath');
|
||||
var command = jrubyPath + '/bin/jruby -S warble';
|
||||
var options = {
|
||||
cwd: join(grunt.config.get('build'), 'kibana')
|
||||
};
|
||||
|
|
|
@ -7,7 +7,6 @@ define(function (require) {
|
|||
require('angular-route');
|
||||
|
||||
// Load the code for the directive
|
||||
require('index');
|
||||
require('apps/visualize/index');
|
||||
require('apps/dashboard/index');
|
||||
|
||||
|
@ -54,4 +53,4 @@ define(function (require) {
|
|||
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,9 +8,6 @@ define(function (require) {
|
|||
// Load the kibana app dependencies.
|
||||
require('angular-route');
|
||||
|
||||
// Load kibana and its applications
|
||||
require('index');
|
||||
|
||||
require('apps/discover/index');
|
||||
|
||||
var $parentScope, $scope, $elem;
|
||||
|
@ -123,4 +120,4 @@ define(function (require) {
|
|||
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,9 +2,6 @@ define(function (require) {
|
|||
var sinon = require('sinon/sinon');
|
||||
require('components/state_management/global_state');
|
||||
|
||||
// Load kibana
|
||||
require('index');
|
||||
|
||||
describe('State Management', function () {
|
||||
var $rootScope, $location, state;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue