From 1000b6d78f18d38c5a30ca263c3788831f9f05a3 Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.uk>
Date: Sat, 28 May 2016 17:41:41 +0100
Subject: [PATCH] Use coffeescript again for Gulp

---
 gulp/build.coffee                   |  1 +
 gulp/build.js                       |  1 -
 gulp/clean.coffee                   |  7 ++++
 gulp/clean.js                       |  8 ----
 gulp/default.coffee                 |  1 +
 gulp/default.js                     |  1 -
 gulp/fonts.coffee                   |  2 +
 gulp/fonts.js                       |  6 ---
 gulp/minify-prod-html.js            |  5 ---
 gulp/{scripts.js => scripts.coffee} |  9 ++--
 gulp/styles.coffee                  |  5 +++
 gulp/styles.js                      |  6 ---
 gulp/watch.coffee                   |  5 +++
 gulp/watch.js                       |  8 ----
 gulpfile.coffee                     | 54 ++++++++++++++++++++++++
 gulpfile.js                         | 64 -----------------------------
 16 files changed, 79 insertions(+), 104 deletions(-)
 create mode 100644 gulp/build.coffee
 delete mode 100644 gulp/build.js
 create mode 100644 gulp/clean.coffee
 delete mode 100644 gulp/clean.js
 create mode 100644 gulp/default.coffee
 delete mode 100644 gulp/default.js
 create mode 100644 gulp/fonts.coffee
 delete mode 100644 gulp/fonts.js
 delete mode 100644 gulp/minify-prod-html.js
 rename gulp/{scripts.js => scripts.coffee} (55%)
 create mode 100644 gulp/styles.coffee
 delete mode 100644 gulp/styles.js
 create mode 100644 gulp/watch.coffee
 delete mode 100644 gulp/watch.js
 create mode 100644 gulpfile.coffee
 delete mode 100644 gulpfile.js

diff --git a/gulp/build.coffee b/gulp/build.coffee
new file mode 100644
index 00000000..ea5f1e58
--- /dev/null
+++ b/gulp/build.coffee
@@ -0,0 +1 @@
+gulp.task 'build', ['clean', 'styles', 'scripts', 'fonts']
diff --git a/gulp/build.js b/gulp/build.js
deleted file mode 100644
index 620fb913..00000000
--- a/gulp/build.js
+++ /dev/null
@@ -1 +0,0 @@
-gulp.task('build', ['clean', 'styles', 'scripts', 'fonts']);
diff --git a/gulp/clean.coffee b/gulp/clean.coffee
new file mode 100644
index 00000000..ced17c48
--- /dev/null
+++ b/gulp/clean.coffee
@@ -0,0 +1,7 @@
+del = require 'del'
+
+gulp.task 'clean', ->
+    del.sync config.fonts.outputDir
+    del.sync config.js.outputDir
+    del.sync config.sass.outputDir
+    del.sync 'output_*/assets/{css,fonts,js}'
diff --git a/gulp/clean.js b/gulp/clean.js
deleted file mode 100644
index 864a53e6..00000000
--- a/gulp/clean.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var del = require('del');
-
-gulp.task('clean', function () {
-    del.sync(config.fonts.outputDir);
-    del.sync(config.js.outputDir);
-    del.sync(config.sass.outputDir);
-    del.sync('output_*/assets/{css,fonts,js}');
-});
diff --git a/gulp/default.coffee b/gulp/default.coffee
new file mode 100644
index 00000000..8279d877
--- /dev/null
+++ b/gulp/default.coffee
@@ -0,0 +1 @@
+gulp.task 'default', ['build', 'watch']
diff --git a/gulp/default.js b/gulp/default.js
deleted file mode 100644
index 2838ee7b..00000000
--- a/gulp/default.js
+++ /dev/null
@@ -1 +0,0 @@
-gulp.task('default', ['build', 'watch']);
diff --git a/gulp/fonts.coffee b/gulp/fonts.coffee
new file mode 100644
index 00000000..323b95b1
--- /dev/null
+++ b/gulp/fonts.coffee
@@ -0,0 +1,2 @@
+gulp.task 'fonts', ->
+    app.copy [config.bowerDir + '/font-awesome/fonts/*'], config.fonts.outputDir
diff --git a/gulp/fonts.js b/gulp/fonts.js
deleted file mode 100644
index 1324bb7a..00000000
--- a/gulp/fonts.js
+++ /dev/null
@@ -1,6 +0,0 @@
-gulp.task('fonts', function () {
-    app.copy(
-        config.bowerDir + '/font-awesome/fonts/*',
-        config.fonts.outputDir
-    );
-});
diff --git a/gulp/minify-prod-html.js b/gulp/minify-prod-html.js
deleted file mode 100644
index 00f427f5..00000000
--- a/gulp/minify-prod-html.js
+++ /dev/null
@@ -1,5 +0,0 @@
-gulp.task('minify-prod-html', function () {
-    gulp.src('output_prod/**/*.html')
-        .pipe(plugins.htmlmin(config.htmlmin))
-        .pipe(gulp.dest('output_prod'));
-});
diff --git a/gulp/scripts.js b/gulp/scripts.coffee
similarity index 55%
rename from gulp/scripts.js
rename to gulp/scripts.coffee
index b141bafc..4aa47b62 100644
--- a/gulp/scripts.js
+++ b/gulp/scripts.coffee
@@ -1,7 +1,6 @@
-gulp.task('scripts', function () {
-    app.js([
+gulp.task 'scripts', ->
+    app.js [
         config.bowerDir + '/jquery/dist/jquery.js',
         config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js',
-        config.js.pattern
-    ], 'site.js');
-});
+        config.js.sourceDir + config.js.pattern
+    ], 'site.js'
diff --git a/gulp/styles.coffee b/gulp/styles.coffee
new file mode 100644
index 00000000..f1386258
--- /dev/null
+++ b/gulp/styles.coffee
@@ -0,0 +1,5 @@
+gulp.task 'styles', ->
+    app.sass [
+        config.bowerDir + '/font-awesome/css/font-awesome.css',
+        config.sass.sourceDir + config.sass.pattern
+    ], 'site.css'
diff --git a/gulp/styles.js b/gulp/styles.js
deleted file mode 100644
index e51e5454..00000000
--- a/gulp/styles.js
+++ /dev/null
@@ -1,6 +0,0 @@
-gulp.task('styles', function () {
-    app.sass([
-        config.bowerDir + '/font-awesome/css/font-awesome.css',
-        config.sass.sourceDir + '/site.sass'
-    ], 'site.css');
-});
diff --git a/gulp/watch.coffee b/gulp/watch.coffee
new file mode 100644
index 00000000..78be4228
--- /dev/null
+++ b/gulp/watch.coffee
@@ -0,0 +1,5 @@
+gulp.task 'watch', ->
+    plugins.refresh.listen()
+
+    gulp.watch config.sass.sourceDir + config.sass.pattern, ['styles']
+    gulp.watch config.js.sourceDir + config.sass.pattern, ['scripts']
diff --git a/gulp/watch.js b/gulp/watch.js
deleted file mode 100644
index 232e7448..00000000
--- a/gulp/watch.js
+++ /dev/null
@@ -1,8 +0,0 @@
-gulp.task('watch', function () {
-    plugins.refresh.listen();
-
-    gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']);
-    gulp.watch(config.sass.sourceDir + config.scss.pattern, ['styles']);
-
-    gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']);
-});
diff --git a/gulpfile.coffee b/gulpfile.coffee
new file mode 100644
index 00000000..3a056805
--- /dev/null
+++ b/gulpfile.coffee
@@ -0,0 +1,54 @@
+'use strict'
+
+global.gulp = require 'gulp'
+global.plugins = require('gulp-load-plugins')()
+
+global.config =
+    autoprefixer:
+        browsers: 'last 2 versions'
+    bowerDir: 'vendor/bower',
+    fonts:
+        outputDir: 'source/assets/fonts'
+    htmlmin:
+        collapseWhitespace: true
+    js:
+        sourceDir: 'assets/js',
+        pattern: '/js/**/*.js',
+        outputDir: 'source/assets/js'
+    production: plugins.util.env.production || false
+    sass:
+        sourceDir: 'assets/sass',
+        pattern: '/**/*.sass',
+        outputDir: 'source/assets/css'
+    scss:
+        pattern: '/**/*.scss'
+
+global.app = {}
+
+app.sass = (paths, filename) ->
+    gulp.src paths
+        .pipe plugins.plumber()
+        .pipe plugins.if !config.production, plugins.sourcemaps.init()
+        .pipe plugins.sassGlob()
+        .pipe plugins.sass()
+        .pipe plugins.autoprefixer config.autoprefixer
+        .pipe plugins.concat filename
+        .pipe plugins.if config.production, plugins.cleanCss()
+        .pipe plugins.if !config.production, plugins.sourcemaps.write('.')
+        .pipe plugins.if !config.production, plugins.refresh()
+        .pipe gulp.dest config.sass.outputDir
+
+app.js = (paths, filename) ->
+    gulp.src paths
+        .pipe plugins.plumber()
+        .pipe plugins.if !config.production, plugins.sourcemaps.init()
+        .pipe plugins.concat filename
+        .pipe plugins.if config.production, plugins.uglify()
+        .pipe plugins.if !config.production, plugins.sourcemaps.write('.')
+        .pipe gulp.dest config.js.outputDir
+
+app.copy = (source, destination) ->
+    gulp.src source
+        .pipe gulp.dest destination
+
+require('require-dir')('./gulp')
diff --git a/gulpfile.js b/gulpfile.js
deleted file mode 100644
index a6dc5261..00000000
--- a/gulpfile.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-global.gulp = require('gulp');
-global.plugins = require('gulp-load-plugins')();
-
-global.config = {
-    autoprefixer: {
-        browsers: 'last 2 versions'
-    },
-    bowerDir: 'vendor/bower',
-    fonts: {
-        outputDir: 'source/assets/fonts'
-    },
-    htmlmin: {
-        collapseWhitespace: true
-    },
-    js: {
-        sourceDir: 'assets/js',
-        pattern: '/js/**/*.js',
-        outputDir: 'source/assets/js'
-    },
-    production: plugins.util.env.production || false,
-    sass: {
-        sourceDir: 'assets/sass',
-        pattern: '/**/*.sass',
-        outputDir: 'source/assets/css'
-    },
-    scss: {
-        pattern: '/**/*.scss'
-    }
-}
-
-global.app = {};
-
-app.sass = function (paths, filename) {
-    gulp.src(paths)
-        .pipe(plugins.plumber())
-        .pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
-        .pipe(plugins.sassGlob())
-        .pipe(plugins.sass())
-        .pipe(plugins.autoprefixer(config.autoprefixer))
-        .pipe(plugins.concat(filename))
-        .pipe(plugins.if(config.production, plugins.cleanCss()))
-        .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.')))
-        .pipe(plugins.if(!config.production, plugins.refresh()))
-        .pipe(gulp.dest(config.sass.outputDir));
-};
-
-app.js = function (paths, filename) {
-    gulp.src(paths)
-        .pipe(plugins.plumber())
-        .pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
-        .pipe(plugins.concat(filename))
-        .pipe(plugins.if(config.production, plugins.uglify()))
-        .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.')))
-        .pipe(gulp.dest(config.js.outputDir));
-};
-
-app.copy = function (source, destination) {
-    gulp.src(source)
-        .pipe(gulp.dest(destination));
-};
-
-require('require-dir')('./gulp');