@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
53 lines (41 loc) • 1.7 kB
JavaScript
import { exec } from 'node:child_process';
import fs from 'node:fs';
import path from 'node:path';
import { promisify } from 'node:util';
import getConfig from '../../config.js';
import sendSlackMessage from '../utils/send-slack-message.js';
import { trailingSlashIt } from './util.js';
const { config } = getConfig();
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();