const gulp = require('gulp');
const concat = require('gulp-concat');
const sass = require('gulp-sass');
const autoprefixer = require('gulp-autoprefixer');

const ENV = process.env.BUILD_ENV || 'dev';

const SASS_SOURCE_PATH = './source/_assets/**/*.scss';
const SASS_DEST_PATH = `./output_${ENV}`;
const SASS_FILE_NAME = 'app.css';

const SCRIPT_SOURCE_PATH = './source/_assets/**/*.js';
const SCRIPT_DEST_PATH = `./output_${ENV}`;
const SCRIPT_FILE_NAME = 'app.js';

const SASS_OPTIONS = {
  outputStyle: ENV === 'prod' ? 'compressed' : 'expanded',
};

const AUTOPREFIX_OPTIONS = {
  browsers: ['last 2 versions'],
};

gulp.task('build', function () {
  gulp.src(SASS_SOURCE_PATH)
    .pipe(sass(SASS_OPTIONS).on('error', sass.logError))
    .pipe(autoprefixer(AUTOPREFIX_OPTIONS))
    .pipe(concat(SASS_FILE_NAME))
    .pipe(gulp.dest(SASS_DEST_PATH))
  ;
  gulp.src(SCRIPT_SOURCE_PATH)
    .pipe(concat(SCRIPT_FILE_NAME))
    .pipe(gulp.dest(SCRIPT_DEST_PATH))
  ;
});

gulp.task('build:watch', function () {
  gulp.watch(SASS_SOURCE_PATH, ['build']);
});