'use strict';
var fs = require('fs');
var gulp = require('gulp');

// gulp plugins
var less = require('gulp-less');
//var prefix = require('gulp-autoprefixer'); //префиксы
//var concatCss = require('gulp-concat-css'); //конкатенация
//var minifyCss = require('gulp-minify-css'); //минификация
//var rename = require('gulp-rename');		//переименовывание




// =============================
//          paths
// =============================

var sysPath = {
    root: '../',
    app: '../~dev_rating/'
};

var srcPath = {
    css: sysPath.root + 'media/css/**/*.css',
    less: sysPath.root + 'media/less/**/*.less',
    js: sysPath.root + 'media/js/**/*.js',
    media: sysPath.root + 'media/',
    config: sysPath.root + 'config/*'
};

var dstPath = {
    css: sysPath.app + 'static/css/',
    less: sysPath.app + 'static/css/',
    js: sysPath.app + 'static/js/',
    media: sysPath.app + 'static/',
    config: sysPath.app + 'application/config/'
};



// =============================
//          rules
// =============================

gulp.task('less:compile', function () {
	gulp.src( srcPath.less )
    	.pipe( less() )
    	.pipe( gulp.dest( dstPath.css ) );
});

gulp.task('css:copy', function() {
    gulp.src( srcPath.css )
        .pipe( gulp.dest( dstPath.css ) );
});

gulp.task('js:copy', function() {
    gulp.src( srcPath.js )
        .pipe(gulp.dest(dstPath.js));
});

gulp.task('config:copy', function() {
    gulp.src( srcPath.config )
        .pipe(gulp.dest(dstPath.config));
});

gulp.task('folders:create', function() {
    var dirs = [
        sysPath.app + 'application/logs/',
        sysPath.app + 'application/cache/',
        sysPath.app + 'application/cache/twig/'
    ];
    fs.mkdir(dirs[0], function() {});
    fs.mkdir(dirs[1], function() {
        fs.mkdir(dirs[2], function() {});
    });
});

// gulp.task('css', ['less'], function() {
//   return gulp.src('css/*.css')
//     .pipe(concatCss('styles/bundle.css'))
//     .pipe(prefix('last 2 versions', '> 1%', 'ie9'))
//     .pipe(minifyCss(''))
//     .pipe(rename({suffix: '.min'}))
//     .pipe(gulp.dest('out/'));
// });

// gulp.task('copyHtml', function() {
//   gulp.src('source/*.html').pipe(gulp.dest('public'));
// });



// =============================
//          watch
// =============================

gulp.task('watch', function () {
	gulp.watch( srcPath.css, ['css:copy']);
	gulp.watch( srcPath.less, ['less:compile']);
    gulp.watch( srcPath.js, ['js:copy']);
});




// =============================
//          common tasks
// =============================

gulp.task('config', [
    'config:copy'
]);

gulp.task('default', [
    'less:compile',
    'css:copy',
    'js:copy',
]);

gulp.task('install', [
    'folders:create',
    'config',
    'default'
]);