UNPKG

@gravityforms/gulp-tasks

Version:
129 lines (106 loc) 4.25 kB
#!/usr/bin/env node import fs from 'node:fs'; import path from 'node:path'; import { createRequire } from 'node:module'; import getConfig from '../../config.js'; import generateSha1 from '../utils/generate-sha-1.js'; import getPluginVersion from '../utils/get-plugin-version.js'; import sendSlackMessage from '../utils/send-slack-message.js'; import { loadEnv } from '../utils/tools.js'; import { getLatestChangelogEntry, trailingSlashIt } from './util.js'; const cjsRequire = createRequire( import.meta.url ); const axios = cjsRequire( 'axios' ); const { config } = getConfig(); loadEnv( config.paths.root ); const rootPath = config?.paths?.root || ''; const fileName = config?.settings?.rootPluginFile || ''; const updateManagerVersion = async () => { if ( process.env.GULP_PRODUCTION_MODE !== 'true' ) { console.log( 'Skipping updating manager version because GULP_PRODUCTION_MODE is not set to true.' ); return; } const slug = config?.settings?.slug || 'gravityforms'; const version = process.env.GRAVITY_PLUGIN_VERSION || getPluginVersion( rootPath, fileName ); const minimumRequirements = config?.settings?.minimumRequirements || {}; const apiKey = process.env.MANAGER_API_KEY || ''; const managerUrl = process.env.MANAGER_URL || ''; if ( ! apiKey || ! managerUrl ) { console.error( 'API key or manager URL not found, cannot update manager version.' ); return; } let changelogEntry = null; if ( process.env.UPDATE_CHANGELOG === 'true' ) { const changelogPath = path.join( rootPath, 'change_log.txt' ); changelogEntry = getLatestChangelogEntry( changelogPath ); } let pathValue = ''; if ( /gravityforms|gravityflow/.test( slug ) ) { pathValue = slug === 'gravityforms' ? `gravityforms/releases/gravityforms_${ version }.zip` : `gravityforms/addons/${ slug.replace( 'gravityforms', '' ) }/${ slug }_${ version }.zip`; } else { pathValue = `${ slug }/releases/${ slug }_${ version }.zip`; } const zipFileName = `${ slug }_${ version }.zip`; const zipFilePath = path.join( rootPath, zipFileName ); let sha1Hash = null; let fileSize = null; if ( fs.existsSync( zipFilePath ) ) { sha1Hash = await generateSha1( zipFilePath ); fileSize = fs.statSync( zipFilePath ).size; console.log( `Generated SHA1 hash for ${ zipFileName }: ${ sha1Hash }` ); console.log( `File size for ${ zipFileName }: ${ fileSize } bytes` ); } else { console.log( `Zip file not found at ${ zipFilePath }, skipping hash and file size generation.` ); } console.log( `Updating Gravity manager version with path value: ${ pathValue }.` ); if ( process.env.UPDATE_CHANGELOG === 'true' ) { if ( changelogEntry ) { console.log( 'Including changelog entry in update request.' ); console.log( 'Changelog entry: ', changelogEntry ); } else { console.log( 'UPDATE_CHANGELOG enabled but no changelog entry found, proceeding without changelog data.' ); } } else { console.log( 'UPDATE_CHANGELOG not enabled, skipping changelog data.' ); } try { const params = { api_key: apiKey, slug, latest_version: version, path: pathValue, }; if ( Object.keys( minimumRequirements ).length > 0 ) { params.minimum_requirements = minimumRequirements; } if ( sha1Hash ) { params.hash = sha1Hash; } if ( fileSize ) { params.file_size = fileSize; } if ( changelogEntry ) { params.change_log = changelogEntry; } console.log( 'Updating Gravity manager version with params: ', params ); console.log( 'Manager URL: ', `${ trailingSlashIt( managerUrl ) }wp-json/gravityapi/v1/addons/update_latest_version` ); const response = await axios.patch( `${ trailingSlashIt( managerUrl ) }wp-json/gravityapi/v1/addons/update_latest_version`, {}, { params, headers: { 'Content-Type': 'application/json', }, }, ); console.log( 'Success, updated Gravity manager version: ', response.data ); } catch ( error ) { console.error( 'Error, could not update Gravity manager version: ', error.response ? error.response.data : error.message ); await sendSlackMessage( `Failed to update manager version during build: ${ error.response ? error.response.data : error.message }`, 'error' ); process.exit( 1 ); } }; updateManagerVersion();