mirror of
https://github.com/github/choosealicense.com
synced 2024-12-23 05:10:11 +01:00
177 lines
4.2 KiB
JavaScript
177 lines
4.2 KiB
JavaScript
/*jshint -W106 */
|
|
/*jshint node:true */
|
|
module.exports = function(grunt) {
|
|
'use strict';
|
|
|
|
// Metadata
|
|
var pkg = grunt.file.readJSON('package.json');
|
|
|
|
// Shared configuration
|
|
var localPort = 7320; // "ZERO"
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
// Task configuration
|
|
jshint: {
|
|
options: {
|
|
jshintrc: '.jshintrc'
|
|
},
|
|
Gruntfile: ['Gruntfile.js'],
|
|
js: ['src/javascript/ZeroClipboard/**/*.js'],
|
|
test: {
|
|
options: {
|
|
jshintrc: 'test/.jshintrc'
|
|
},
|
|
src: ['test/*.js']
|
|
}
|
|
},
|
|
clean: {
|
|
src: ['ZeroClipboard.*'],
|
|
meta: ['bower.json', 'composer.json', 'LICENSE']
|
|
},
|
|
concat: {
|
|
options: {
|
|
stripBanners: true,
|
|
process: {
|
|
data: pkg
|
|
}
|
|
},
|
|
js: {
|
|
src: [
|
|
'src/meta/source-banner.tmpl',
|
|
'src/javascript/start.js',
|
|
'src/javascript/ZeroClipboard/state.js',
|
|
'src/javascript/ZeroClipboard/utils.js',
|
|
'src/javascript/ZeroClipboard/flash.js',
|
|
'src/javascript/ZeroClipboard/client.js',
|
|
'src/javascript/ZeroClipboard/core.js',
|
|
'src/javascript/ZeroClipboard/dom.js',
|
|
'src/javascript/ZeroClipboard/event.js',
|
|
'src/javascript/ZeroClipboard/deprecated.js',
|
|
'src/javascript/end.js'
|
|
],
|
|
dest: 'ZeroClipboard.js'
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
preserveComments: 'some',
|
|
report: 'min'
|
|
},
|
|
js: {
|
|
options: {
|
|
beautify: {
|
|
beautify: true,
|
|
// `indent_level` requires jshint -W106
|
|
indent_level: 2
|
|
},
|
|
mangle: false,
|
|
compress: false
|
|
},
|
|
src: ['ZeroClipboard.js'],
|
|
dest: 'ZeroClipboard.js'
|
|
},
|
|
minjs: {
|
|
src: ['ZeroClipboard.js'],
|
|
dest: 'ZeroClipboard.min.js'
|
|
}
|
|
},
|
|
mxmlc: {
|
|
options: {
|
|
rawConfig: '-static-link-runtime-shared-libraries=true'
|
|
},
|
|
swf: {
|
|
files: {
|
|
'ZeroClipboard.swf': ['src/flash/ZeroClipboard.as']
|
|
}
|
|
}
|
|
},
|
|
template: {
|
|
options: {
|
|
data: pkg
|
|
},
|
|
bower: {
|
|
files: {
|
|
'bower.json': ['src/meta/bower.json.tmpl']
|
|
}
|
|
},
|
|
composer: {
|
|
files: {
|
|
'composer.json': ['src/meta/composer.json.tmpl']
|
|
}
|
|
},
|
|
LICENSE: {
|
|
files: {
|
|
'LICENSE': ['src/meta/LICENSE.tmpl']
|
|
}
|
|
}
|
|
},
|
|
chmod: {
|
|
options: {
|
|
mode: '444'
|
|
},
|
|
src: ['ZeroClipboard.*'],
|
|
meta: ['bower.json', 'composer.json', 'LICENSE']
|
|
},
|
|
connect: {
|
|
server: {
|
|
options: {
|
|
port: localPort
|
|
}
|
|
}
|
|
},
|
|
qunit: {
|
|
file: ['test/**/*.js.html'],
|
|
http: {
|
|
options: {
|
|
urls: grunt.file.expand(['test/**/*.js.html']).map(function(testPage) {
|
|
return 'http://localhost:' + localPort + '/' + testPage + '?noglobals=true';
|
|
})
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
options: {
|
|
spawn: false
|
|
},
|
|
Gruntfile: {
|
|
files: '<%= jshint.Gruntfile %>',
|
|
tasks: ['jshint:Gruntfile']
|
|
},
|
|
js: {
|
|
files: '<%= jshint.js %>',
|
|
tasks: ['jshint:js', 'unittest']
|
|
},
|
|
test: {
|
|
files: '<%= jshint.test %>',
|
|
tasks: ['jshint:test', 'unittest']
|
|
}
|
|
}
|
|
});
|
|
|
|
// These plugins provide necessary tasks
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-mxmlc');
|
|
grunt.loadNpmTasks('grunt-template');
|
|
grunt.loadNpmTasks('grunt-chmod');
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
|
grunt.loadNpmTasks('grunt-contrib-qunit');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
|
|
//
|
|
// Task aliases and chains
|
|
//
|
|
|
|
grunt.registerTask('unittest', ['connect', 'qunit']);
|
|
grunt.registerTask('test', ['jshint', 'clean:src', 'concat', 'mxmlc', 'chmod:src', 'unittest']);
|
|
grunt.registerTask('travis', ['test']);
|
|
|
|
// Default task
|
|
grunt.registerTask('default', ['jshint', 'clean', 'concat', 'uglify', 'mxmlc', 'template', 'chmod', 'unittest']);
|
|
|
|
};
|