UNPKG

slush-source4

Version:

Source 4 generator

114 lines (97 loc) 3.3 kB
const fs = require('fs') const gulp = require('gulp') const shell = require('gulp-shell') const rename = require('gulp-rename') const sequence = require('run-sequence') // ======================================== Copy template gulp.task('copy-template', function () { let sources = [] if (fs.existsSync('application/')) { sources.push(`${__dirname}/template/gulpfile.js`) sources.push(`${__dirname}/template/index.php`) sources.push(`${__dirname}/template/gitignore`) sources.push(`${__dirname}/template/README.md`) sources.push(`${__dirname}/template/.docker-build`) sources.push(`${__dirname}/template/Makefile`) } else { sources.push(`${__dirname}/template/**`) sources.push(`${__dirname}/template/**/.keep`) sources.push(`${__dirname}/template/.*`) } return gulp.src(sources) /* Prevent NPM/Yarn to remove .gitignore file: - https://github.com/npm/npm/issues/1862 - https://github.com/npm/npm/issues/3763 */ .pipe(rename(function (path) { if (path.basename == 'gitignore') { path.basename = '.gitignore' } return path })) .pipe(gulp.dest('.')) }) // ======================================== Install app PHP dependencies gulp.task('install-app-php-libs', function () { return gulp.src('.', {read: false}).pipe( fs.existsSync('vendor/') ? shell('composer update') : shell('composer install') ) }) // ======================================== Install app JS dependencies gulp.task('install-app-js-libs', function () { return gulp.src('.', {read: false}).pipe( fs.existsSync('package-lock.json') ? shell('npm ci') : shell('npm install') ) }) // ======================================== Install Source JS dependencies gulp.task('install-source-js-libs', function () { var cwd = process.cwd() process.chdir('./vendor/pyrsmk/source-4') var stream = gulp.src('.', {read: false}).pipe( fs.existsSync('package-lock.json') ? shell('npm ci') : shell('npm install') ) process.chdir(cwd) return stream }) // ======================================== Install Source Bower dependencies gulp.task('install-source-bower-libs', function () { var cwd = process.cwd() process.chdir('./vendor/pyrsmk/source-4') var stream = gulp.src('.', {read: false}).pipe( shell('bower install') ) process.chdir(cwd) return stream }) // ======================================== Process CSS files gulp.task('process-css-files', function () { return gulp.src('.', {read: false}).pipe( shell('gulp css') ) }) // ======================================== Process JS files gulp.task('process-js-files', function () { return gulp.src('.', {read: false}).pipe( shell('gulp js') ) }) // ======================================== Install gulp.task('default', function (done) { sequence( 'copy-template', 'install-app-php-libs', 'install-app-js-libs', 'install-source-js-libs', 'install-source-bower-libs', 'process-css-files', 'process-js-files', done ) })