@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
52 lines (41 loc) • 1.72 kB
JavaScript
const { exec } = require( 'child_process' );
const fs = require( 'fs' );
const path = require( 'path' );
const { promisify } = require( 'util' );
const getConfig = require( '../../config' );
const { config } = getConfig();
const sendSlackMessage = require( '../utils/send-slack-message' );
const { trailingSlashIt } = require( './util' );
const root = trailingSlashIt( config?.paths?.root || '' );
const execAsync = promisify( exec );
const init = async () => {
try {
const composerJsonPath = path.join( root, 'composer.json' );
if ( fs.existsSync( composerJsonPath ) ) {
const composerJson = JSON.parse( fs.readFileSync( composerJsonPath, 'utf8' ) );
if ( composerJson.require && Object.keys( composerJson.require ).length > 0 ) {
console.log( `Installing composer dependencies...` );
const composerLockPath = path.join( root, 'composer.lock' );
const vendorPath = path.join( root, 'vendor' );
if ( fs.existsSync( composerLockPath ) ) {
fs.rmSync( composerLockPath );
}
if ( fs.existsSync( vendorPath ) ) {
fs.rmSync( vendorPath, { recursive: true, force: true } );
}
await execAsync( `cd "${ root }" && composer install --no-dev --ignore-platform-reqs` );
console.log( `Installed composer dependencies successfully.` );
} else {
console.log( `No 'require' section found in composer.json. Skipping composer install.` );
}
} else {
console.log( `No composer.json found. Skipping composer install.` );
}
} catch ( error ) {
console.error( 'Error during script execution:', error );
await sendSlackMessage( `Composer install failed during build: ${ error.message }`, 'error' );
process.exit( 1 );
}
};
init();