1
0
mirror of https://github.com/bitwarden/help synced 2025-12-10 13:23:16 +00:00
Files
help/gulpfile.js
Kyle Spearrin 9382bd77fc update libs
2017-08-31 08:51:19 -04:00

117 lines
3.0 KiB
JavaScript

var gulp = require('gulp'),
rimraf = require('rimraf'),
concat = require('gulp-concat'),
rename = require('gulp-rename'),
runSequence = require('run-sequence'),
ghPages = require('gulp-gh-pages'),
merge = require('merge-stream'),
gulpUtil = require('gulp-util'),
child = require('child_process'),
browserSync = require('browser-sync').create();
var paths = {};
paths.dist = './_site/';
paths.sass = './_sass/';
paths.libDir = './lib/';
paths.npmDir = './node_modules/';
paths.cssDir = './css/';
paths.jsDir = './scripts/';
gulp.task('build', function (cb) {
return runSequence(
'clean',
'lib',
cb);
});
gulp.task('clean:lib', function (cb) {
return rimraf(paths.libDir, cb);
});
gulp.task('clean:dist', function (cb) {
return rimraf(paths.dist, cb);
});
gulp.task('clean', ['clean:lib', 'clean:dist']);
gulp.task('lib', ['clean:lib'], function () {
var libs = [
{
src: paths.npmDir + 'bootstrap-sass/assets/javascripts/bootstrap.min.js',
dest: paths.libDir + 'bootstrap/js'
},
{
src: paths.npmDir + 'bootstrap-sass/assets/fonts/bootstrap/*',
dest: paths.libDir + 'bootstrap/fonts'
},
{
src: [
paths.npmDir + 'font-awesome/**/css/font-awesome.min.css',
paths.npmDir + 'font-awesome/**/fonts/*'
],
dest: paths.libDir + 'font-awesome'
},
{
src: paths.npmDir + 'jquery/dist/jquery.min.js',
dest: paths.libDir + 'jquery'
},
{
src: paths.npmDir + 'lunr/lunr.js',
dest: paths.libDir + 'lunr'
},
{
src: paths.npmDir + 'fluidbox/dist/**/*',
dest: paths.libDir + 'fluidbox'
}
];
var tasks = libs.map(function (lib) {
return gulp.src(lib.src).pipe(gulp.dest(lib.dest));
});
return merge(tasks);
});
gulp.task('deploy', [], function () {
return gulp.src(paths.dist + '**/*')
.pipe(ghPages({ cacheDir: '../.publish_cache/help' }));
});
function jekyll(commands, cb) {
var jekyllLogger = (buffer) => {
buffer.toString()
.split(/\n/)
.forEach((message) => gulpUtil.log(message));
};
var jekyllCommand = process.platform === "win32" ? "jekyll.bat" : "jekyll";
var jekyll = child.spawn(jekyllCommand, commands);
jekyll.stdout.on('data', jekyllLogger);
jekyll.stderr.on('data', jekyllLogger);
jekyll.stderr.on('close', cb);
return jekyll;
}
gulp.task('jekyll:build', function (cb) {
return jekyll(['build', '--watch'], cb);
});
gulp.task('jekyll:serve', function (cb) {
return jekyll(['serve', '--watch', '--host=0.0.0.0'], cb);
});
gulp.task('serve', () => {
return browserSync.init({
files: [paths.dist + '/**'],
port: 4009,
server: {
baseDir: paths.dist
}
});
});
gulp.task('default', function (cb) {
return runSequence(
'build',
'jekyll:serve',
cb);
});