module.exports = function (grunt) {

    // Волшебная строчка. Она творит магию.
    require('load-grunt-tasks')(grunt);

    var serveStatic = require('serve-static');

    grunt.initConfig({
        // Эта таска отслеживает изменения в файлах проекта
        // и запускает другие таски при необходимости.
        watch:  {
            // При изменении файлов открытая страничка
            // в браузере перезагрузится автоматически.
            livereload: {
                options: {
                    livereload: '<%= connect.options.livereload %>'
                },
                files: [
                    'app/**'
                ]
            }
        },

        // Эта таска запускает сервер.
        connect: {
            options: {
                port: 9000,
                hostname: 'localhost',
                livereload: 35729,
                middleware: function (connect) {
                    return [
                        serveStatic('app'),
                        connect().use('/bower_components', serveStatic('./bower_components'))
                    ];
                }
            },

            livereload: {
                options: {
                    open: false
                }
            }
        }

    });

    // Регестрируем таску, которую можно вызвать с консоли.
    // По сути, под одним названием мы запускаем другие в указанном порядке.
    grunt.registerTask('server', [
        'connect',
        'watch'
    ]);
};