j3lte/chanarchive

View on GitHub
Gruntfile.js

Summary

Maintainability
A
2 hrs
Test Coverage
/*
 * chanarchive
 * https://github.com/j3lte/chanarchive
 *
 * Copyright (c) 2014 Jelte Lagendijk
 * Licensed under the MIT license.
 */
'use strict';

var docsCommand = [
    'echo "## Output chanarchive\n" > ./docs/cli.md; ',
    'echo "\\\`\\\`\\\`" >> ./docs/cli.md; ',
    'node ./cli.js >> ./docs/cli.md; ',
    'echo "\\\`\\\`\\\`" >> ./docs/cli.md;'].join('');

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        eslint: {
            all: [
                'Gruntfile.js',
                'cli.js',
                'lib/**/*.js'
            ],
            options: {}
        },
        shell: {
            options: {
                stderr: false
            },
            shrinkwrap: {
                command: 'npm-shrinkwrap'
            },
            clientOutputToMarkdown: {
                command: docsCommand
            }
        },
        clean: {
            build: [
                'npm-shrinkwrap.json',
                '*chan'
            ]
        },
        watch: {
            eslint: {
                files: '<%= eslint.all %>',
                tasks: ['eslint']
            },
            simplemocha: {
                files: [
                    'test/**/*.js',
                    '<%= eslint.all %>'
                ],
                tasks: ['simplemocha']
            }
        },
        simplemocha: {
            options: { },
            all: { src: ['test/**/*.js'] }
        }
    });

    // These plugins provide necessary tasks.
    grunt.loadNpmTasks('grunt-shell');
    grunt.loadNpmTasks('gruntify-eslint');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-simple-mocha');

    // Default task.
    grunt.registerTask('default', ['eslint']);
    grunt.registerTask('docs', ['shell:clientOutputToMarkdown']);
    grunt.registerTask('test', ['simplemocha']);
    grunt.registerTask('build', ['eslint', 'simplemocha', 'clean', 'docs', 'shell:shrinkwrap']);
    grunt.registerTask('dev', ['eslint', 'watch']);
};