/******************************* Internal Task Collection *******************************/ /* These tasks create packaged files from **dist** components Not intended to be called directly by a user because these do not build fresh from **src** */ module.exports = function(gulp) { var // node dependencies fs = require('fs'), chmod = require('gulp-chmod'), concat = require('gulp-concat'), concatCSS = require('gulp-concat-css'), clone = require('gulp-clone'), dedupe = require('gulp-dedupe'), gulpif = require('gulp-if'), header = require('gulp-header'), less = require('gulp-less'), minifyCSS = require('gulp-clean-css'), plumber = require('gulp-plumber'), print = require('gulp-print'), rename = require('gulp-rename'), replace = require('gulp-replace'), uglify = require('gulp-uglify'), // user config config = require('./../config/user'), docsConfig = require('./../config/docs'), // install config tasks = require('./../config/tasks'), release = require('./../config/project/release'), // shorthand globs = config.globs, assets = config.paths.assets, output = config.paths.output, banner = tasks.banner, filenames = tasks.filenames, log = tasks.log, settings = tasks.settings ; /*-------------- Packaged ---------------*/ gulp.task('package uncompressed css', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(plumber()) .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(header(banner, settings.header)) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed css', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(plumber()) .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedMinifiedCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(minifyCSS(settings.concatMinify)) .pipe(header(banner, settings.header)) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package uncompressed js', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.js') .pipe(plumber()) .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concat(filenames.concatenatedJS)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed js', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.js') .pipe(plumber()) .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concat(filenames.concatenatedMinifiedJS)) .pipe(uglify(settings.concatUglify)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); /*-------------- RTL ---------------*/ if(config.rtl) { gulp.task('package uncompressed rtl css', function () { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css') .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedRTLCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(header(banner, settings.header)) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed rtl css', function () { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignoredRTL + '.rtl.css') .pipe(dedupe()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedMinifiedRTLCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(minifyCSS(settings.concatMinify)) .pipe(header(banner, settings.header)) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package uncompressed docs css', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed docs css', function() { return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedMinifiedCSS, settings.concatCSS)) .pipe(minifyCSS(settings.concatMinify)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(output.packaged)) .pipe(print(log.created)) ; }); } /*-------------- Docs ---------------*/ var docsOutput = docsConfig.paths.output ; gulp.task('package uncompressed docs css', function() { return gulp.src(docsOutput.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedCSS, settings.concatCSS)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(docsOutput.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed docs css', function() { return gulp.src(docsOutput.uncompressed + '/**/' + globs.components + globs.ignored + '.css') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concatCSS(filenames.concatenatedMinifiedCSS, settings.concatCSS)) .pipe(minifyCSS(settings.concatMinify)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(docsOutput.packaged)) .pipe(print(log.created)) ; }); gulp.task('package uncompressed docs js', function() { return gulp.src(docsOutput.uncompressed + '/**/' + globs.components + globs.ignored + '.js') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concat(filenames.concatenatedJS)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(docsOutput.packaged)) .pipe(print(log.created)) ; }); gulp.task('package compressed docs js', function() { return gulp.src(docsOutput.uncompressed + '/**/' + globs.components + globs.ignored + '.js') .pipe(dedupe()) .pipe(plumber()) .pipe(replace(assets.uncompressed, assets.packaged)) .pipe(concat(filenames.concatenatedMinifiedJS)) .pipe(uglify(settings.concatUglify)) .pipe(header(banner, settings.header)) .pipe(gulpif(config.hasPermission, chmod(config.permission))) .pipe(gulp.dest(docsOutput.packaged)) .pipe(print(log.created)) ; }); };