88 lines
1.4 KiB
JavaScript
88 lines
1.4 KiB
JavaScript
const fs = require('fs'),
|
|
gulp = require('gulp'),
|
|
clean = require('gulp-clean'),
|
|
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([
|
|
'assets/**/*',
|
|
'inc/**/*',
|
|
'lib/**/*',
|
|
'vendor/**/*',
|
|
'LICENSE',
|
|
`${NAME}.php`,
|
|
'readme.txt'
|
|
], {
|
|
base: './',
|
|
encoding: false,
|
|
})
|
|
.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'
|
|
)
|
|
);
|