diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 1f82a888b7..0000000000 --- a/gulpfile.js +++ /dev/null @@ -1,160 +0,0 @@ -var gulp = require('gulp'); -var gutil = require('gulp-util'); -var rename = require('gulp-rename'); -var path = require('path'); - - -gulp.task('default', ['build', 'watch']); -gulp.task('build', ['styles', 'javascript', 'images', 'fonts']); - - -var sourceDirName = 'static_src'; -var destDirName = 'static'; -var renameSrcToDest = function() { - return rename(function(filePath) { - filePath.dirname = filePath.dirname.replace( - '/' + sourceDirName + '/', - '/' + destDirName + '/'); - }); -}; - -var flatten = function(arrOfArr) { - return arrOfArr.reduce(function(flat, more) { - return flat.concat(more); - }, []); -}; - - -// A Wagtail app that contains static files -var App = function(dir, options) { - this.dir = dir; - this.options = options || {}; - this.appName = this.options.appName || path.basename(dir); - this.sourceFiles = path.join('.', this.dir, sourceDirName); -}; -App.prototype = Object.create(null); -App.prototype.scssIncludePaths = function() { - return [this.sourceFiles]; -}; -App.prototype.scssSources = function() { - if (!this.options.scss) return []; - - return this.options.scss.map(function(file) { - return path.join(this.sourceFiles, file); - }, this); -}; - - -// All the Wagtail apps that contain static files -var apps = [ - new App('wagtail/wagtailadmin', { - 'scss': [ - 'wagtailadmin/scss/core.scss', - 'wagtailadmin/scss/layouts/login.scss', - 'wagtailadmin/scss/layouts/home.scss', - 'wagtailadmin/scss/layouts/page-editor.scss', - 'wagtailadmin/scss/layouts/preview.scss', - 'wagtailadmin/scss/panels/rich-text.scss', - 'wagtailadmin/scss/userbar.scss', - 'wagtailadmin/scss/userbar_embed.scss', - ], - }), - new App('wagtail/wagtaildocs'), - new App('wagtail/wagtailembeds'), - new App('wagtail/wagtailforms'), - new App('wagtail/wagtailimages', { - 'scss': [ - 'wagtailimages/scss/add-multiple.scss', - 'wagtailimages/scss/focal-point-chooser.scss', - ], - }), - new App('wagtail/wagtailsnippets'), - new App('wagtail/wagtailusers', { - 'scss': [ - 'wagtailusers/scss/groups_edit.scss', - ], - }), - new App('wagtail/contrib/wagtailstyleguide', { - 'scss': [ - 'wagtailstyleguide/scss/styleguide.scss' - ], - }), -]; - - -/* - * Watch - Watch files, trigger tasks when they are modified - */ -gulp.task('watch', ['build'], function () { - apps.forEach(function(app) { - gulp.watch(path.join(app.sourceFiles, '*/scss/**'), ['styles:sass']); - gulp.watch(path.join(app.sourceFiles, '*/css/**'), ['styles:css']); - gulp.watch(path.join(app.sourceFiles, '*/js/**'), ['javascript']); - gulp.watch(path.join(app.sourceFiles, '*/images/**'), ['images']); - gulp.watch(path.join(app.sourceFiles, '*/fonts/**'), ['fonts']); - }); -}); - - -/* - * Styles -**/ -gulp.task('styles', ['styles:sass', 'styles:css']); - -// SASS - Compile and move sass -var sass = require('gulp-sass'); -var autoprefixer = require('gulp-autoprefixer'); -gulp.task('styles:sass', function () { - - // Wagtail Sass files include each other across applications, - // e.g. wagtailimages Sass files will include wagtailadmin/sass/mixins.scss - // Thus, each app is used as an includePath. - var includePaths = flatten(apps.map(function(app) { return app.scssIncludePaths(); })); - - // Not all files in a directory need to be compiled, so each app defines - // its own Sass files that need to be compiled. - var sources = flatten(apps.map(function(app) { return app.scssSources(); })); - - return gulp.src(sources) - .pipe(sass({ - errLogToConsole: true, - includePaths: includePaths, - outputStyle: 'expanded' - })) - .pipe(autoprefixer({ - browsers: ['last 2 versions'], - cascade: false - })) - .pipe(gulp.dest(function(file) { - // e.g. wagtailadmin/scss/core.scss -> wagtailadmin/css/core.css - // Changing the suffix is done by Sass automatically - return file.base - .replace('/static_src/', '/static/') - .replace('/scss/', '/css/'); - })) - .on('error', gutil.log); -}); - - -/* - * Simple copy tasks - these just copy files from the source to the destination, - * with no compilation, minification, or other intelligence - * -**/ -var rename = require('gulp-rename'); -var simpleCopyTask = function(glob) { - return function() { - var sources = apps.map(function(app) { - return path.join(app.sourceFiles, app.appName, glob); - }); - - return gulp.src(sources, {base: '.'}) - .pipe(renameSrcToDest()) - .pipe(gulp.dest('.')) - .on('error', gutil.log); - }; -}; -gulp.task('styles:css', simpleCopyTask('css/**/*')); -gulp.task('javascript', simpleCopyTask('js/**/*')); -gulp.task('images', simpleCopyTask('images/**/*')); -gulp.task('fonts', simpleCopyTask('fonts/**/*'));