module.exports = (grunt) -> version = -> grunt.file.readJSON("package.json").version version_tag = -> "v#{version()}" grunt.initConfig pkg: grunt.file.readJSON("package.json") comments: """ // Chosen, a Select Box Enhancer for jQuery and Prototype // by Patrick Filler for Harvest, http://getharvest.com // // Version <%= pkg.version %> // Full source at https://github.com/harvesthq/chosen // Copyright (c) 2011 Harvest http://getharvest.com // MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md // This file is generated by `grunt build`, do not edit it by hand.\n """ concat: options: banner: "<%= comments %>" jquery: src: ["public/chosen.jquery.js"] dest: "public/chosen.jquery.js" proto: src: ["public/chosen.proto.js"] dest: "public/chosen.proto.js" coffee: compile: files: 'public/chosen.jquery.js': ['coffee/lib/select-parser.coffee', 'coffee/lib/abstract-chosen.coffee', 'coffee/chosen.jquery.coffee'] 'public/chosen.proto.js': ['coffee/lib/select-parser.coffee', 'coffee/lib/abstract-chosen.coffee', 'coffee/chosen.proto.coffee'] uglify: options: mangle: except: ['jQuery', 'AbstractChosen', 'Chosen', 'SelectParser'] banner: "<%= comments %>" minified_chosen_js: files: 'public/chosen.jquery.min.js': ['public/chosen.jquery.js'] 'public/chosen.proto.min.js': ['public/chosen.proto.js'] cssmin: minified_chosen_css: src: 'public/chosen.css' dest: 'public/chosen.min.css' watch: scripts: files: ['coffee/**/*.coffee'] tasks: ['build'] grunt.loadNpmTasks 'grunt-contrib-coffee' grunt.loadNpmTasks 'grunt-contrib-uglify' grunt.loadNpmTasks 'grunt-contrib-concat' grunt.loadNpmTasks 'grunt-contrib-watch' grunt.loadNpmTasks 'grunt-css' grunt.loadNpmTasks 'grunt-bump' grunt.registerTask 'default', ['build'] grunt.registerTask 'build', ['coffee', 'concat', 'uglify', 'cssmin'] grunt.registerTask 'bump_patch', ['bump:patch', 'package_jquery', 'build', 'app_version'] grunt.registerTask 'bump_minor', ['bump:minor', 'package_jquery', 'build', 'app_version'] grunt.registerTask 'bump_major', ['bump:major', 'package_jquery', 'build', 'app_version'] grunt.registerTask 'app_version', 'Display the version number', () -> console.log "Chosen version: #{version()}" grunt.registerTask 'package_jquery', 'Generate a jquery.json manifest file from package.json', () -> src = "package.json" dest = "chosen.jquery.json" pkg = grunt.file.readJSON(src) json1 = "name": pkg.name "description": pkg.description "version": version() "licenses": pkg.licenses json2 = pkg.jqueryJSON json1[key] = json2[key] for key of json2 json1.author.name = pkg.author grunt.file.write('chosen.jquery.json', JSON.stringify(json1, null, 2))