pax_global_header00006660000000000000000000000064127413574550014527gustar00rootroot0000000000000052 comment=c40c73205f03b2b9dd7fe7171441e92d241567b0 grunt-contrib-internal-1.2.2/000077500000000000000000000000001274135745500161405ustar00rootroot00000000000000grunt-contrib-internal-1.2.2/.gitignore000066400000000000000000000000371274135745500201300ustar00rootroot00000000000000node_modules npm-debug.log tmp grunt-contrib-internal-1.2.2/.jshintrc000066400000000000000000000003211274135745500177610ustar00rootroot00000000000000{ "boss": true, "curly": true, "eqeqeq": true, "eqnull": true, "immed": true, "latedef": true, "newcap": true, "noarg": true, "node": true, "sub": true, "undef": true, "unused": true } grunt-contrib-internal-1.2.2/.travis.yml000066400000000000000000000002511274135745500202470ustar00rootroot00000000000000sudo: false language: node_js node_js: - "0.10" - "0.12" - "4" - "5" - "6" - "iojs" matrix: fast_finish: true cache: directories: - node_modules grunt-contrib-internal-1.2.2/AUTHORS000066400000000000000000000002041274135745500172040ustar00rootroot00000000000000"Cowboy" Ben Alman (http://benalman.com/) Kyle Robinson Young Nicolas Gryman Sindre Sorhus Steven Benner Tyler Kellen Vlad Filippov grunt-contrib-internal-1.2.2/CHANGELOG000066400000000000000000000030501274135745500173500ustar00rootroot00000000000000v1.2.2: date: 2016-07-13 changes: - Add Node.js 6 in CI configs. v1.2.1: date: 2016-04-14 changes: - Fix CI normalization regression. v1.1.0: date: 2016-04-06 changes: - Fix "skipIfExists" argument to contrib-ci. - Break out tasks into separate files. v1.0.1: date: 2016-04-06 changes: - Include missing files from the npm package. v1.0.0: date: 2016-04-04 changes: - Remove peerDependencies. - Add task for normalizing CI configs. v0.4.13: date: 2014-11-22 changes: - Various minor fixes. v0.4.11: date: 2014-11-22 changes: - Use SVG badges. v0.4.10: date: 2014-05-05 changes: - Lock dependency for 0.8. v0.4.9: date: 2014-04-08 changes: - Add AppVeyor badges. v0.4.8: date: 2014-03-12 changes: - Copy CONTRIBUTING.md from itself rather than grunt. v0.4.7: date: 2014-02-18 changes: - Update repository parsing. Adds official npm parsing lib. v0.4.6: date: 2013-08-16 changes: - Display current version of plugins in README. v0.4.5: date: 2013-04-28 changes: - Get Travis CI URL from package.json. v0.4.4: date: 2013-04-01 changes: - Changelog date timezone is localized. v0.4.3: date: 2013-02-20 changes: - Fix typo in readme template. v0.4.2: date: 2013-02-17 changes: - Moving overview text to the correct file. - Mentioned `grunt.loadNpmTasks` in readme. v0.4.1: date: 2013-02-17 changes: - Adding support for npm peerDependencies. v0.1.0: date: 2012-10-03 changes: - Work in progress, not yet officially released. grunt-contrib-internal-1.2.2/CONTRIBUTING.md000066400000000000000000000001771274135745500203760ustar00rootroot00000000000000Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project. grunt-contrib-internal-1.2.2/Gruntfile.js000066400000000000000000000012641274135745500204400ustar00rootroot00000000000000/* * grunt-contrib-internal * http://gruntjs.com/ * * Copyright (c) 2016 Tyler Kellen, contributors * Licensed under the MIT license. */ 'use strict'; module.exports = function(grunt) { // Project configuration. grunt.initConfig({ jshint: { all: [ 'Gruntfile.js', 'tasks/*.js' ], options: { jshintrc: '.jshintrc' } } }); // Actually load this plugin's task(s). grunt.loadTasks('tasks'); // These plugins provide necessary tasks. grunt.loadNpmTasks('grunt-contrib-jshint'); // By default, lint task. grunt.registerTask('default', ['jshint', 'build-contrib']); grunt.registerTask('test', ['default']); }; grunt-contrib-internal-1.2.2/LICENSE-MIT000066400000000000000000000020561274135745500175770ustar00rootroot00000000000000Copyright (c) 2016 Tyler Kellen, contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. grunt-contrib-internal-1.2.2/README.md000066400000000000000000000062651274135745500174300ustar00rootroot00000000000000# grunt-contrib-internal v1.2.2 [![Build Status: Linux](https://travis-ci.org/gruntjs/grunt-contrib-internal.svg?branch=master)](https://travis-ci.org/gruntjs/grunt-contrib-internal) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/vhmcvnnnmou73wq8/branch/master?svg=true)](https://ci.appveyor.com/project/gruntjs/grunt-contrib-internal/branch/master) > Internal tasks for managing the grunt-contrib projects _Note that this is not an official Grunt plugin release! If you want to use this in a project, please be sure to follow the instructions for installing development versions, as outlined in the [Installing Grunt](http://gruntjs.com/installing-grunt) guide._ ## Getting Started If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: ```shell npm install grunt-contrib-internal --save-dev ``` Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: ```js grunt.loadNpmTasks('grunt-contrib-internal'); ``` _This plugin is used internally by grunt-contrib plugins, and shouldn't be used externally._ ##### Skipping Existing CI Configs If They Exist If you have needed customizations to the `.travis.yml` or `appveyor.yml` files, use the following to skip normalizing those files if they exist: ```js grunt.registerTask('default', ['jshint', 'contrib-core', 'contrib-ci:skipIfExists']); ``` ## Release History * 2016-07-13   v1.2.2   Add Node.js 6 in CI configs. * 2016-04-14   v1.2.1   Fix CI normalization regression. * 2016-04-06   v1.1.0   Fix "skipIfExists" argument to contrib-ci. Break out tasks into separate files. * 2016-04-06   v1.0.1   Include missing files from the npm package. * 2016-04-04   v1.0.0   Remove peerDependencies. Add task for normalizing CI configs. * 2014-11-22   v0.4.13   Various minor fixes. * 2014-11-22   v0.4.11   Use SVG badges. * 2014-05-05   v0.4.10   Lock dependency for 0.8. * 2014-04-08   v0.4.9   Add AppVeyor badges. * 2014-03-12   v0.4.8   Copy CONTRIBUTING.md from itself rather than grunt. * 2014-02-18   v0.4.7   Update repository parsing. Adds official npm parsing lib. * 2013-08-16   v0.4.6   Display current version of plugins in README. * 2013-04-28   v0.4.5   Get Travis CI URL from package.json. * 2013-04-01   v0.4.4   Changelog date timezone is localized. * 2013-02-20   v0.4.3   Fix typo in readme template. * 2013-02-17   v0.4.2   Moving overview text to the correct file. Mentioned `grunt.loadNpmTasks` in readme. * 2013-02-17   v0.4.1   Adding support for npm peerDependencies. * 2012-10-03   v0.1.0   Work in progress, not yet officially released. --- Task submitted by ["Cowboy" Ben Alman](http://benalman.com/) *This file was generated on Wed Jul 13 2016 09:26:35.* grunt-contrib-internal-1.2.2/appveyor.yml000066400000000000000000000015411274135745500205310ustar00rootroot00000000000000clone_depth: 10 version: "{build}" # What combinations to test environment: matrix: - nodejs_version: "0.10" platform: x86 - nodejs_version: "0.12" platform: x86 - nodejs_version: "4" platform: x64 - nodejs_version: "4" platform: x86 - nodejs_version: "5" platform: x86 - nodejs_version: "6" platform: x86 install: - ps: Install-Product node $env:nodejs_version $env:platform - npm install test_script: # Output useful info for debugging - node --version && npm --version # We test multiple Windows shells because of prior stdout buffering issues # filed against Grunt. https://github.com/joyent/node/issues/3584 - ps: "npm test # PowerShell" # Pass comment to PS for easier debugging - cmd: npm test build: off matrix: fast_finish: true cache: - node_modules -> package.json grunt-contrib-internal-1.2.2/docs/000077500000000000000000000000001274135745500170705ustar00rootroot00000000000000grunt-contrib-internal-1.2.2/docs/overview.md000066400000000000000000000006001274135745500212540ustar00rootroot00000000000000_This plugin is used internally by grunt-contrib plugins, and shouldn't be used externally._ ### Skipping Existing CI Configs If They Exist If you have needed customizations to the `.travis.yml` or `appveyor.yml` files, use the following to skip normalizing those files if they exist: ```js grunt.registerTask('default', ['jshint', 'contrib-core', 'contrib-ci:skipIfExists']); ``` grunt-contrib-internal-1.2.2/package.json000066400000000000000000000013411274135745500204250ustar00rootroot00000000000000{ "name": "grunt-contrib-internal", "description": "Internal tasks for managing the grunt-contrib projects", "version": "1.2.2", "author": { "name": "Grunt Team", "url": "http://gruntjs.com/" }, "repository": "gruntjs/grunt-contrib-internal", "license": "MIT", "engines": { "node": ">=0.10.0" }, "scripts": { "test": "grunt test" }, "dependencies": { "read-package-json": "^2.0.0" }, "devDependencies": { "grunt": "^1.0.0", "grunt-contrib-jshint": "^1.0.0" }, "peerDependencies": { "grunt": ">=0.4.0" }, "keywords": [], "files": [ "tasks", ".travis.yml", "appveyor.yml", "LICENSE-MIT", "CONTRIBUTING.md" ], "appveyor_id": "vhmcvnnnmou73wq8" } grunt-contrib-internal-1.2.2/tasks/000077500000000000000000000000001274135745500172655ustar00rootroot00000000000000grunt-contrib-internal-1.2.2/tasks/assets/000077500000000000000000000000001274135745500205675ustar00rootroot00000000000000grunt-contrib-internal-1.2.2/tasks/assets/README.tmpl.md000066400000000000000000000036651274135745500230330ustar00rootroot00000000000000# {%= name %} v{%= version %}{% if (travis) { %} [![Build Status: Linux]({%= travis %}.svg?branch=master)]({%= travis %}){% } %}{% if (appveyor) { %} [![Build Status: Windows]({%= appveyor %})](https://ci.appveyor.com/project/gruntjs/{%= name %}/branch/master){% } %} > {%= description %} {% if (in_development) { %} _Note that this is not an official Grunt plugin release! If you want to use this in a project, please be sure to follow the instructions for installing development versions, as outlined in the [Installing Grunt](http://gruntjs.com/installing-grunt) guide._ {% } %} ## Getting Started If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: ```shell npm install {%= name %} --save-dev ``` Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: ```js grunt.loadNpmTasks('{%= name %}'); ``` {%= docs.plugin.overview || '' %} {% _.each(docs.task, function(doc, name) { %} ## {%= _.capitalize(name) %} task _Run this task with the `grunt {%= name %}` command._ {%= doc.overview || '' %} {%= doc.options || '' %} {%= doc.examples || '' %} {% }); %} ## Release History {% if (changelog) { _.each(changelog, function(details, version) { var date = details.date; if (date instanceof Date) { date = grunt.template.date(new Date(date.getTime() + date.getTimezoneOffset() * 60000), 'yyyy-mm-dd'); } print('\n * ' + [ date, version, details.changes.join(' '), ].join('\u2003\u2003\u2003')); }); } else { %} _(Nothing yet)_ {% } %} --- Task submitted by [{%= authors[0].name %}]({%= authors[0].url %}) *This file was generated on {%= grunt.template.today() %}.* grunt-contrib-internal-1.2.2/tasks/build-contrib.js000066400000000000000000000004141274135745500223570ustar00rootroot00000000000000/* * grunt-contrib-internal * http://gruntjs.com/ * * Copyright (c) 2016 Tyler Kellen, contributors * Licensed under the MIT license. */ 'use strict'; module.exports = function(grunt) { grunt.registerTask('build-contrib', ['contrib-ci', 'contrib-core']); }; grunt-contrib-internal-1.2.2/tasks/contrib-ci.js000066400000000000000000000017311274135745500216560ustar00rootroot00000000000000/* * grunt-contrib-internal * http://gruntjs.com/ * * Copyright (c) 2016 Tyler Kellen, contributors * Licensed under the MIT license. */ 'use strict'; module.exports = function(grunt) { grunt.registerTask('contrib-ci', 'Normalizes AppVeyor and Travis CI configs.', function(skipIfExists) { skipIfExists = skipIfExists === 'skipIfExists'; var path = require('path'); var travis = grunt.file.read(path.join(__dirname, '..', '.travis.yml')); var appveyor = grunt.file.read(path.join(__dirname, '..', 'appveyor.yml')); var taskTravis = path.join(process.cwd(), '.travis.yml'); var taskAppveyor = path.join(process.cwd(), 'appveyor.yml'); if (!skipIfExists || !grunt.file.exists(taskTravis)) { grunt.file.write(taskTravis, travis); } if (!skipIfExists || !grunt.file.exists(taskAppveyor)) { grunt.file.write(taskAppveyor, appveyor); } grunt.log.ok('Normalized .travis.yml and appveyor.yml for grunt-contrib.'); }); }; grunt-contrib-internal-1.2.2/tasks/contrib-core.js000066400000000000000000000072131274135745500222140ustar00rootroot00000000000000/* * grunt-contrib-internal * http://gruntjs.com/ * * Copyright (c) 2016 Tyler Kellen, contributors * Licensed under the MIT license. */ 'use strict'; module.exports = function(grunt) { // Add custom template delimiters. grunt.template.addDelimiters('build-contrib', '{%', '%}'); grunt.registerTask('contrib-core', 'Generate contrib plugin files.', function() { var path = require('path'); var readJson = require('read-package-json'); var done = this.async(); var asset = path.join.bind(null, __dirname, 'assets'); var self = this; readJson('package.json', console.error, false, function (err, data) { if (err) { console.error('There was an error reading the file'); done(false); } var meta = data; meta.changelog = grunt.file.readYAML('CHANGELOG'); meta.travis = grunt.file.exists('.travis.yml'); if (meta.travis) { // create a valid Travis URL, based on [user/repository_name] meta.travis = 'https://travis-ci.org' + meta.repository.url .replace('github.com', '') .replace('git+https://', '') .replace('git://', '') .replace('https://', '') .replace('http://', '') .replace('.git', ''); } meta.appveyor = null; if (meta.appveyor_id) { meta.appveyor = 'https://ci.appveyor.com/api/projects/status/' + meta.appveyor_id + '/branch/master?svg=true'; } var authors = grunt.file.read('AUTHORS'); meta.authors = authors.split('\n').map(function(author) { var matches = author.match(/(.*?)\s*\((.*)\)/) || []; return {name: matches[1], url: matches[2]}; }); // Used to display the "in development" warning message @ the top. meta.in_development = (meta.keywords || []).indexOf('gruntplugin') === -1 || ''; // Read plugin/task docs. meta.docs = {plugin: {}, task: {}}; grunt.file.expand('docs/*.md').forEach(function(filepath) { // Parse out the task name and section name. var basename = path.basename(filepath, '.md'); var parts = basename.split('-'); var section = parts.pop(); var taskname = parts.join('-'); var namespace = taskname ? meta.docs.task : meta.docs.plugin; if (taskname) { if (!namespace[taskname]) { namespace[taskname] = {}; } namespace = namespace[taskname]; } // Read doc file. var doc = grunt.file.read(filepath); // Adjust header level to be semantically correct for the readme. doc = doc.replace(/^#/gm, '###'); // Process as template. doc = grunt.template.process(doc, {data: meta, delimiters: 'build-contrib'}); namespace[section] = doc; }); // Generate readme. var tmpl = grunt.file.read(asset('README.tmpl.md')); var newReadme = grunt.template.process(tmpl, {data: meta, delimiters: 'build-contrib'}); // Only write readme if it actually changed. var oldReadme = grunt.file.exists('README.md') ? grunt.file.read('README.md') : ''; var re = /(\*This file was generated on.*)/; if (oldReadme.replace(re, '') !== newReadme.replace(re, '')) { grunt.file.write('README.md', newReadme); grunt.log.ok('Created README.md'); } else { grunt.log.ok('Keeping README.md.'); } // Copy contributing guide grunt.file.copy(path.resolve(__dirname, '..', 'CONTRIBUTING.md'), 'CONTRIBUTING.md'); grunt.log.ok('Created CONTRIBUTING.md'); // Fail task if any errors were logged. if (self.errorCount > 0) { done(false); } done(); }); }); };