geolets/gulp/tasks/static.js
2016-07-14 17:15:55 +02:00

40 lines
970 B
JavaScript

'use strict';
// modules > native
const p = require('path');
const fs = require('fs');
// modules > 3rd party
const chalk = require('chalk');
// modules > gulp:utilities
const gulp = require('gulp');
const through = require('through2');
const gutil = require('gulp-util');
const TASK_NAME = 'static';
const config = require('../config').static;
gulp.task(TASK_NAME, () => {
let count = 0;
return gulp.src(config.src)
// we use through so that we can skip directories
// we skip directories because we want to merge file structure
.pipe(through.obj((file, enc, callback) => {
fs.stat(file.path, (err, stats) => {
if (stats.isDirectory())
file = null;
callback(null, file);
});
}))
.pipe(gulp.symlink((file) => {
count++;
return p.join(config.dest);
}))
.on('end', () => {
gutil.log(chalk.cyan(TASK_NAME) + ' done symlinking ' + chalk.bold.blue(count) + ' files');
});
});