| /******************************* |
| 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)) |
| ; |
| }); |
| |
| }; |