@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
45 lines (41 loc) • 1.68 kB
JavaScript
const gulp = require( 'gulp' );
const { promisify } = require( 'util' );
const hashsum = require( 'gulp-hashsum' );
const path = require( 'path' );
const fs = require( 'fs' );
const rename = promisify( fs.rename );
const getPluginVersion = require( '../utils/get-plugin-version' );
const sendSlackMessage = require( '../utils/send-slack-message' );
const getConfig = require('../../config');
const { config } = getConfig();
module.exports = Object.assign( {}, {
release() {
const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( config.paths.root, config.settings.rootPluginFile );
const checksumFilename = `${ config.settings.slug }_${ version }.md5`;
const checksumDir = path.join( config.paths.root, 'checksums' );
const destPath = path.join( checksumDir, checksumFilename );
if ( ! fs.existsSync( checksumDir ) ) {
fs.mkdirSync( checksumDir, { recursive: true } );
}
return gulp.src( config?.checksum?.release?.src || [] )
.pipe( hashsum( {
dest: config.paths.root,
filename: checksumFilename,
} ) )
.on( 'error', async function( err ) {
console.error( 'Checksum creation error:', err );
await sendSlackMessage( `Failed to create checksums during build: ${ err }`, 'error' );
process.exit( 1 );
} )
.on( 'end', async () => {
const srcPath = path.join( config.paths.root, checksumFilename );
try {
await rename( srcPath, destPath );
console.log( `Checksum file moved to ${ destPath }` );
} catch ( err ) {
await sendSlackMessage( `Failed to move checksums during build: ${ err }`, 'error' );
process.exit( 1 );
}
} );
},
}, config?.tasks?.builtins?.checksum || {} );