Modularize grunt tasks
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
on_start: ['<%= destDir %>', '<%= tempDir %>'],
|
||||
temp: ['<%= tempDir %>'],
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,76 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
zip: {
|
||||
options: {
|
||||
archive: '<%= tempDir %>/<%= pkg.name %>-latest.zip'
|
||||
},
|
||||
files : [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= destDir %>',
|
||||
src: ['**/*'],
|
||||
dest: '<%= pkg.name %>-latest'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
src: ['LICENSE.md', 'README.md'],
|
||||
dest: '<%= pkg.name %>-latest'
|
||||
}
|
||||
]
|
||||
},
|
||||
tgz: {
|
||||
options: {
|
||||
archive: '<%= tempDir %>/<%= pkg.name %>-latest.tar.gz'
|
||||
},
|
||||
files : [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= destDir %>',
|
||||
src: ['**/*'],
|
||||
dest: '<%= pkg.name %>-latest'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
src: ['LICENSE.md', 'README.md'],
|
||||
dest: '<%= pkg.name %>-latest'
|
||||
}
|
||||
]
|
||||
},
|
||||
zip_release: {
|
||||
options: {
|
||||
archive: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.zip'
|
||||
},
|
||||
files : [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= destDir %>',
|
||||
src: ['**/*'],
|
||||
dest: '<%= pkg.name %>-<%= pkg.version %>'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
src: ['LICENSE.md', 'README.md'],
|
||||
dest: '<%= pkg.name %>-<%= pkg.version %>'
|
||||
}
|
||||
]
|
||||
},
|
||||
tgz_release: {
|
||||
options: {
|
||||
archive: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.tar.gz'
|
||||
},
|
||||
files : [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= destDir %>',
|
||||
src: ['**/*'],
|
||||
dest: '<%= pkg.name %>-<%= pkg.version %>'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
src: ['LICENSE.md', 'README.md'],
|
||||
dest: '<%= pkg.name %>-<%= pkg.version %>'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
// copy source to temp, we will minify in place for the dist build
|
||||
everything_but_less_to_temp: {
|
||||
cwd: '<%= srcDir %>',
|
||||
expand: true,
|
||||
src: ['**/*', '!**/*.less'],
|
||||
dest: '<%= tempDir %>'
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
build: {
|
||||
expand: true,
|
||||
cwd: '<%= tempDir %>',
|
||||
src: '**/*.css',
|
||||
dest: '<%= tempDir %>'
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
me: {
|
||||
// Target-specific file lists and/or options go here.
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
build: {
|
||||
options:{
|
||||
removeComments: true,
|
||||
collapseWhitespace: true
|
||||
},
|
||||
expand: true,
|
||||
cwd: '<%= tempDir %>',
|
||||
src: [
|
||||
'index.html',
|
||||
'app/panels/**/*.html',
|
||||
'app/partials/**/*.html'
|
||||
],
|
||||
dest: '<%= tempDir %>'
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
// just lint the source dir
|
||||
source: {
|
||||
files: {
|
||||
src: ['Gruntfile.js', '<%= srcDir %>/app/**/*.js']
|
||||
}
|
||||
},
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
// this is the only task, other than copy, that runs on the src directory, since we don't really need
|
||||
// the less files in the dist. Everything else runs from on temp, and require copys everything
|
||||
// from temp -> dist
|
||||
dist:{
|
||||
expand: true,
|
||||
cwd:'<%= srcDir %>/vendor/bootstrap/less/',
|
||||
src: ['bootstrap.dark.less', 'bootstrap.light.less'],
|
||||
dest: '<%= tempDir %>/css/',
|
||||
},
|
||||
// Compile in place when not building
|
||||
src:{
|
||||
options: {
|
||||
paths: ["<%= srcDir %>/vendor/bootstrap/less"],
|
||||
yuicompress:true
|
||||
},
|
||||
files: {
|
||||
"<%= srcDir %>/css/bootstrap.dark.min.css": "<%= srcDir %>/vendor/bootstrap/less/bootstrap.dark.less",
|
||||
"<%= srcDir %>/css/bootstrap.light.min.css": "<%= srcDir %>/vendor/bootstrap/less/bootstrap.light.less"
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
|
||||
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
||||
'<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
|
||||
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
|
||||
' Licensed <%= pkg.license %> */\n\n'
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
build: {
|
||||
expand:true,
|
||||
cwd:'<%= tempDir %>',
|
||||
src: [
|
||||
'app/controllers/**/*.js',
|
||||
'app/directives/**/*.js',
|
||||
'app/services/**/*.js',
|
||||
'app/filters/**/*.js',
|
||||
'app/panels/**/*.js',
|
||||
'app/app.js',
|
||||
'vendor/angular/**/*.js',
|
||||
'vendor/elasticjs/elastic-angular-client.js'
|
||||
],
|
||||
dest: '<%= tempDir %>'
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,84 @@
|
||||
module.exports = function(config) {
|
||||
var _c = {
|
||||
build: {
|
||||
options: {
|
||||
appDir: '<%= tempDir %>',
|
||||
dir: '<%= destDir %>',
|
||||
|
||||
mainConfigFile: '<%= tempDir %>/app/components/require.config.js',
|
||||
modules: [], // populated below
|
||||
|
||||
optimize: 'none',
|
||||
optimizeCss: 'none',
|
||||
optimizeAllPluginResources: false,
|
||||
|
||||
removeCombined: true,
|
||||
findNestedDependencies: true,
|
||||
normalizeDirDefines: 'all',
|
||||
inlineText: true,
|
||||
skipPragmas: true,
|
||||
|
||||
done: function (done, output) {
|
||||
var duplicates = require('rjs-build-analysis').duplicates(output);
|
||||
|
||||
if (duplicates.length > 0) {
|
||||
grunt.log.subhead('Duplicates found in requirejs build:');
|
||||
grunt.log.warn(duplicates);
|
||||
done(new Error('r.js built duplicate modules, please check the excludes option.'));
|
||||
}
|
||||
|
||||
done();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// setup the modules require will build
|
||||
var requireModules = _c.build.options.modules = [
|
||||
{
|
||||
// main/common module
|
||||
name: 'app',
|
||||
include: [
|
||||
'css',
|
||||
'kbn',
|
||||
'text',
|
||||
'jquery',
|
||||
'angular',
|
||||
'settings',
|
||||
'bootstrap',
|
||||
'modernizr',
|
||||
'elasticjs',
|
||||
'timepicker',
|
||||
'datepicker',
|
||||
'underscore',
|
||||
'filters/all',
|
||||
'jquery.flot',
|
||||
'services/all',
|
||||
'angular-strap',
|
||||
'directives/all',
|
||||
'jquery.flot.pie',
|
||||
'angular-sanitize',
|
||||
'angular-dragdrop'
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
// create a module for each directory in src/app/panels/
|
||||
require('fs')
|
||||
.readdirSync(config.srcDir+'/app/panels')
|
||||
.forEach(function (panelName) {
|
||||
requireModules.push({
|
||||
name: 'panels/'+panelName+'/module',
|
||||
exclude: ['app']
|
||||
});
|
||||
});
|
||||
|
||||
// exclude the literal config definition from all modules
|
||||
requireModules
|
||||
.forEach(function (module) {
|
||||
module.excludeShallow = module.excludeShallow || [];
|
||||
module.excludeShallow.push('config');
|
||||
});
|
||||
|
||||
return _c;
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dist: {
|
||||
bucket: 'download.elasticsearch.org',
|
||||
access: 'private',
|
||||
// debug: true, // uncommment to prevent actual upload
|
||||
upload: [
|
||||
{
|
||||
src: '<%= tempDir %>/<%= pkg.name %>-latest.zip',
|
||||
dest: 'kibana/kibana/<%= pkg.name %>-latest.zip',
|
||||
},
|
||||
{
|
||||
src: '<%= tempDir %>/<%= pkg.name %>-latest.tar.gz',
|
||||
dest: 'kibana/kibana/<%= pkg.name %>-latest.tar.gz',
|
||||
}
|
||||
]
|
||||
},
|
||||
release: {
|
||||
bucket: 'download.elasticsearch.org',
|
||||
access: 'private',
|
||||
// debug: true, // uncommment to prevent actual upload
|
||||
upload: [
|
||||
{
|
||||
src: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.zip',
|
||||
dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.zip',
|
||||
},
|
||||
{
|
||||
src: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.tar.gz',
|
||||
dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.tar.gz',
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,16 @@
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dest: {
|
||||
expand: true,
|
||||
src: ['**/*.js', '!config.js', '!app/dashboards/*.js'],
|
||||
dest: '<%= destDir %>',
|
||||
cwd: '<%= destDir %>',
|
||||
options: {
|
||||
quite: true,
|
||||
compress: true,
|
||||
preserveComments: false,
|
||||
banner: '<%= meta.banner %>'
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user