2016-08-19 09:19:06 +02:00
|
|
|
var argv = require('minimist')(process.argv.slice(2));
|
|
|
|
var autoprefixer = require('gulp-autoprefixer');
|
|
|
|
var chmod = require('gulp-chmod');
|
|
|
|
var concat = require('gulp-concat');
|
|
|
|
var gulp = require('gulp');
|
|
|
|
var gulpif = require('gulp-if');
|
|
|
|
var jade = require('gulp-jade');
|
|
|
|
var livereload = require('gulp-livereload');
|
|
|
|
var plumber = require('gulp-plumber');
|
|
|
|
var rename = require('gulp-rename');
|
|
|
|
var sass = require('gulp-sass');
|
|
|
|
var sourcemaps = require('gulp-sourcemaps');
|
|
|
|
var uglify = require('gulp-uglify');
|
2016-09-20 15:17:19 +02:00
|
|
|
var cache = require('gulp-cached');
|
2016-08-19 09:19:06 +02:00
|
|
|
|
|
|
|
var enabled = {
|
|
|
|
uglify: argv.production,
|
|
|
|
maps: argv.production,
|
|
|
|
failCheck: argv.production,
|
|
|
|
prettyPug: !argv.production,
|
|
|
|
liveReload: !argv.production
|
|
|
|
};
|
|
|
|
|
2016-09-20 15:17:19 +02:00
|
|
|
|
2016-08-19 09:19:06 +02:00
|
|
|
/* CSS */
|
|
|
|
gulp.task('styles', function() {
|
|
|
|
gulp.src('src/styles/**/*.sass')
|
|
|
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
|
|
|
.pipe(sass({
|
|
|
|
outputStyle: 'compressed'}
|
|
|
|
))
|
|
|
|
.pipe(autoprefixer("last 3 versions"))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
|
|
|
.pipe(gulp.dest('pillar/web/static/assets/css'))
|
|
|
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/* Templates - Jade */
|
|
|
|
gulp.task('templates', function() {
|
|
|
|
gulp.src('src/templates/**/*.jade')
|
|
|
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
2016-09-20 15:17:19 +02:00
|
|
|
.pipe(cache('templating'))
|
2016-08-19 09:19:06 +02:00
|
|
|
.pipe(jade({
|
|
|
|
pretty: enabled.prettyPug
|
|
|
|
}))
|
|
|
|
.pipe(gulp.dest('pillar/web/templates/'))
|
|
|
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/* Individual Uglified Scripts */
|
|
|
|
gulp.task('scripts', function() {
|
|
|
|
gulp.src('src/scripts/*.js')
|
|
|
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
2016-09-20 15:17:19 +02:00
|
|
|
.pipe(cache('scripting'))
|
2016-08-19 09:19:06 +02:00
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
|
|
|
.pipe(gulpif(enabled.uglify, uglify()))
|
|
|
|
.pipe(rename({suffix: '.min'}))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
|
|
|
.pipe(chmod(644))
|
|
|
|
.pipe(gulp.dest('pillar/web/static/assets/js/'))
|
|
|
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/* Collection of scripts in src/scripts/tutti/ to merge into tutti.min.js */
|
|
|
|
/* Since it's always loaded, it's only for functions that we want site-wide */
|
|
|
|
gulp.task('scripts_concat_tutti', function() {
|
|
|
|
gulp.src('src/scripts/tutti/**/*.js')
|
|
|
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
|
|
|
.pipe(concat("tutti.min.js"))
|
|
|
|
.pipe(gulpif(enabled.uglify, uglify()))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
|
|
|
.pipe(chmod(644))
|
|
|
|
.pipe(gulp.dest('pillar/web/static/assets/js/'))
|
|
|
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task('scripts_concat_markdown', function() {
|
|
|
|
gulp.src('src/scripts/markdown/**/*.js')
|
|
|
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
|
|
|
.pipe(concat("markdown.min.js"))
|
|
|
|
.pipe(gulpif(enabled.uglify, uglify()))
|
|
|
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
|
|
|
.pipe(chmod(644))
|
|
|
|
.pipe(gulp.dest('pillar/web/static/assets/js/'))
|
|
|
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// While developing, run 'gulp watch'
|
|
|
|
gulp.task('watch',function() {
|
2016-09-22 18:07:05 +02:00
|
|
|
// Only listen for live reloads if ran with --livereload
|
|
|
|
if (argv.livereload){
|
|
|
|
livereload.listen();
|
|
|
|
}
|
2016-08-19 09:19:06 +02:00
|
|
|
|
|
|
|
gulp.watch('src/styles/**/*.sass',['styles']);
|
|
|
|
gulp.watch('src/templates/**/*.jade',['templates']);
|
|
|
|
gulp.watch('src/scripts/*.js',['scripts']);
|
|
|
|
gulp.watch('src/scripts/tutti/**/*.js',['scripts_concat_tutti']);
|
|
|
|
gulp.watch('src/scripts/markdown/**/*.js',['scripts_concat_markdown']);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Run 'gulp' to build everything at once
|
|
|
|
gulp.task('default', ['styles', 'templates', 'scripts', 'scripts_concat_tutti', 'scripts_concat_markdown']);
|