Files
ogre-captcha/gulpfile.js
T
2026-06-04 17:56:55 +00:00

90 lines
1.5 KiB
JavaScript

const fs = require('fs'),
gulp = require('gulp'),
clean = require('gulp-clean'),
filter = require('gulp-filter').default,
zip = require('gulp-zip').default;
const PACKAGE = require('./package.json');
const NAME = PACKAGE.name.split('/').pop();
// Clean Tasks
gulp.task('clean-package-files', (done) => {
if (!fs.existsSync('./dist')) return done();
return gulp.src(`./dist/${NAME}`, {
read: false,
allowEmpty: true,
}).pipe(clean());
});
gulp.task('clean-package-zip', (done) => {
if (!fs.existsSync('./dist')) return done();
return gulp.src('./dist/*.zip', {
read: false,
allowEmpty: true,
}).pipe(clean());
});
gulp.task(
'clean-package',
gulp.series(
'clean-package-files',
'clean-package-zip'
)
);
gulp.task(
'clean',
gulp.series(
'clean-package'
)
);
// Package Tasks
gulp.task('package-copy', () => {
return gulp.src([
'inc/**/*',
'lib/**/*',
'vendor/**/*',
'LICENSE',
`${NAME}.php`,
'readme.txt',
'!vendor/**/node_modules/**/*',
], {
base: './',
encoding: false,
})
.pipe(filter((file) => !file.path.includes('/node_modules')))
.pipe(gulp.dest(`./dist/${NAME}`));
});
gulp.task('package-compress', () => {
return gulp.src(`./dist/${NAME}/**/*`, {
base: './dist',
encoding: false,
})
.pipe(zip(`${NAME}.zip`))
.pipe(gulp.dest('./dist'));
});
gulp.task(
'package',
gulp.series(
'clean',
'package-copy',
'package-compress',
'clean-package-files'
)
);
// Default Tasks
gulp.task(
'default',
gulp.series(
'clean',
'package'
)
);