97 lines
2.9 KiB
JavaScript
97 lines
2.9 KiB
JavaScript
/*
|
|
* Copyright (c) 2013, Divio AG
|
|
* Licensed under BSD
|
|
* http://github.com/aldryn/aldryn-boilerplate-bootstrap3
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
// #############################################################################
|
|
// IMPORTS
|
|
var argv = require('minimist')(process.argv.slice(2));
|
|
var gulp = require('gulp');
|
|
|
|
// #############################################################################
|
|
// SETTINGS
|
|
var PROJECT_ROOT = __dirname;
|
|
var PROJECT_PATH = {
|
|
bower: PROJECT_ROOT + '/static/vendor',
|
|
css: PROJECT_ROOT + '/static/css',
|
|
docs: PROJECT_ROOT + '/static/docs',
|
|
fonts: PROJECT_ROOT + '/static/fonts',
|
|
html: PROJECT_ROOT + '/templates',
|
|
images: PROJECT_ROOT + '/static/img',
|
|
icons: PROJECT_ROOT + '/private/icons',
|
|
js: PROJECT_ROOT + '/static/js',
|
|
sass: PROJECT_ROOT + '/private/sass',
|
|
tests: PROJECT_ROOT + '/tests'
|
|
};
|
|
|
|
var PROJECT_PATTERNS = {
|
|
images: [
|
|
PROJECT_PATH.images + '/**/*',
|
|
// exclude from preprocessing
|
|
'!' + PROJECT_PATH.images + '/dummy/*/**'
|
|
],
|
|
js: [
|
|
'gulpfile.js',
|
|
PROJECT_PATH.js + '/**/*.js',
|
|
PROJECT_PATH.tests + '/**/*.js',
|
|
// exclude from linting
|
|
'!' + PROJECT_PATH.js + '/*.min.js',
|
|
'!' + PROJECT_PATH.js + '/**/*.min.js',
|
|
'!' + PROJECT_PATH.tests + '/coverage/**/*'
|
|
],
|
|
sass: [
|
|
PROJECT_PATH.sass + '/**/*.{scss,sass}'
|
|
]
|
|
};
|
|
|
|
var PORT = parseInt(process.env.PORT, 10) || 8000;
|
|
var DEBUG = argv.debug;
|
|
|
|
function task(id) {
|
|
return require('./tools/tasks/' + id)(gulp, {
|
|
PROJECT_ROOT: PROJECT_ROOT,
|
|
PROJECT_PATH: PROJECT_PATH,
|
|
PROJECT_PATTERNS: PROJECT_PATTERNS,
|
|
DEBUG: DEBUG,
|
|
PORT: PORT
|
|
});
|
|
}
|
|
|
|
gulp.task('bower', task('bower'));
|
|
gulp.task('lint:javascript', task('lint/javascript'));
|
|
gulp.task('lint', ['lint:javascript']);
|
|
gulp.task('sass', task('sass'));
|
|
gulp.task('build', ['sass']);
|
|
|
|
/**
|
|
* GULP_MODE === 'production' means we have a limited
|
|
* subset of tasks, namely sass, bower and lint to
|
|
* speed up the deployment / installation process.
|
|
*/
|
|
if (process.env.GULP_MODE !== 'production') {
|
|
gulp.task('images', task('images'));
|
|
gulp.task('docs', task('docs'));
|
|
gulp.task('preprocess', ['sass', 'images', 'docs']);
|
|
gulp.task('icons', task('icons'));
|
|
|
|
gulp.task('browser', task('browser'));
|
|
|
|
gulp.task('tests:lint', ['lint:javascript']);
|
|
gulp.task('tests:unit', task('tests/unit'));
|
|
gulp.task('tests:watch', ['tests:lint'], task('tests/watch'));
|
|
gulp.task('tests', ['tests:unit', 'tests:integration', 'tests:lint']);
|
|
|
|
var webdriverUpdate = require('gulp-protractor').webdriver_update;
|
|
gulp.task('tests:webdriver', webdriverUpdate);
|
|
gulp.task('tests:integration', ['tests:webdriver'], task('tests/integration'));
|
|
}
|
|
|
|
gulp.task('watch', function () {
|
|
gulp.watch(PROJECT_PATTERNS.sass, ['sass']);
|
|
gulp.watch(PROJECT_PATTERNS.js, ['lint']);
|
|
});
|
|
|
|
gulp.task('default', ['bower', 'sass', 'lint', 'watch']);
|