@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
274 lines (269 loc) • 7.47 kB
JavaScript
const gulp = require( 'gulp' );
const fs = require( 'fs' );
const path = require( 'path' );
const getConfig = require( '../../config' );
const { config } = getConfig();
const shell = require( 'gulp-shell' );
const browserSync = require( 'browser-sync' );
const args = require( '../utils/get-args' );
function combineCommandParts( parts = [], glue = '&&' ) {
if ( ! Array.isArray( parts ) ) {
return '';
}
return parts.join( glue );
}
module.exports = Object.assign( {}, {
composerInstall() {
return gulp.src( './' )
.pipe( shell( 'npm run composer:install' ) );
},
exportComponents() {
return gulp.src( './' )
.pipe( shell( 'npm run export:components' ) );
},
exportComponentsNoClean() {
return gulp.src( './' )
.pipe( shell( 'npm run export:components:noclean' ) );
},
generateDesignTokenProps() {
return gulp.src( './' )
.pipe( shell( 'npm run generate:props:all' ) );
},
generatePot() {
return gulp.src( './' )
.pipe( shell( 'npm run generate:pot' ) );
},
linkMonorepo() {
return gulp.src( './' )
.pipe( shell( 'npm run link:monorepo' ) );
},
packageWpCom() {
return gulp.src( './' )
.pipe( shell( 'npm run package:wpcom' ) );
},
processJsHashes() {
return gulp.src( './' )
.pipe( shell( 'npm run process:hash:js' ) );
},
restoreState() {
return gulp.src( './' )
.pipe( shell( 'npm run restore:state' ) );
},
test() {
return gulp.src( './' )
.pipe( shell( 'npm run test' ) );
},
scriptsThemeDev() {
const server = browserSync.get( config.browserSync.serverName );
return gulp.src( './' )
.pipe( shell( 'npm run js:theme:dev' ) )
.on( 'finish', function() {
if ( server.active ) {
server.reload();
}
} );
},
scriptsThemeDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:theme:dev:release' ) );
},
scriptsThemeProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:theme:prod' ) );
},
scriptsThemeProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:theme:prod:release' ) );
},
scriptsAdminDev() {
const server = browserSync.get( config.browserSync.serverName );
return gulp.src( './' )
.pipe( shell( 'npm run js:admin:dev' ) )
.on( 'finish', function() {
if ( server.active ) {
server.reload();
}
} );
},
scriptsAdminDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admin:dev:release' ) );
},
scriptsAdminProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admin:prod' ) );
},
scriptsAdminProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admin:prod:release' ) );
},
scriptsAdminBlocksDev() {
const server = browserSync.get( config.browserSync.serverName );
return gulp.src( './' )
.pipe( shell( 'npm run js:adminblocks:dev' ) )
.on( 'finish', function() {
if ( server.active ) {
server.reload();
}
} );
},
scriptsAdminBlocksDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminblocks:dev:release' ) );
},
scriptsAdminBlocksProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminblocks:prod' ) );
},
scriptsAdminBlocksProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminblocks:prod:release' ) );
},
scriptsAdminSettingsDev() {
const server = browserSync.get( config.browserSync.serverName );
return gulp.src( './' )
.pipe( shell( 'npm run js:adminsettings:dev' ) )
.on( 'finish', function() {
if ( server.active ) {
server.reload();
}
} );
},
scriptsAdminSettingsDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminsettings:dev:release' ) );
},
scriptsAdminSettingsProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminsettings:prod' ) );
},
scriptsAdminSettingsProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:adminsettings:prod:release' ) );
},
scriptsAdminComponentsDev() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admincomponents:dev' ) );
},
scriptsAdminComponentsDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admincomponents:dev:release' ) );
},
scriptsAdminComponentsProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admincomponents:prod' ) );
},
scriptsAdminComponentsProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:admincomponents:prod:release' ) );
},
scriptsLegacyDev() {
const server = browserSync.get( config.browserSync.serverName );
return gulp.src( './' )
.pipe( shell( 'npm run js:legacy:dev' ) )
.on( 'finish', function() {
if ( server.active ) {
server.reload();
}
} );
},
scriptsLegacyDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:legacy:dev:release' ) );
},
scriptsLegacyProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:legacy:prod' ) );
},
scriptsLegacyProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:legacy:prod:release' ) );
},
scriptsLibrariesDev() {
return gulp.src( './' )
.pipe( shell( 'npm run js:libraries:dev' ) );
},
scriptsLibrariesDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:libraries:dev:release' ) );
},
scriptsLibrariesProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:libraries:prod' ) );
},
scriptsLibrariesProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:libraries:prod:release' ) );
},
scriptsReactUtilsDev() {
return gulp.src( './' )
.pipe( shell( 'npm run js:react-utils:dev' ) );
},
scriptsReactUtilsDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:react-utils:dev:release' ) );
},
scriptsReactUtilsProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:react-utils:prod' ) );
},
scriptsReactUtilsProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:react-utils:prod:release' ) );
},
scriptsUtilsDev() {
return gulp.src( './' )
.pipe( shell( 'npm run js:utils:dev' ) );
},
scriptsUtilsDevRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:utils:dev:release' ) );
},
scriptsUtilsProd() {
return gulp.src( './' )
.pipe( shell( 'npm run js:utils:prod' ) );
},
scriptsUtilsProdRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run js:utils:prod:release' ) );
},
updateSlackPackage() {
return gulp.src( './' )
.pipe( shell( 'npm run slack:update:package' ) );
},
updateSlackPublish() {
return gulp.src( './' )
.pipe( shell( 'npm run slack:update:publish' ) );
},
updateManagerVersion() {
return gulp.src( './' )
.pipe( shell( 'npm run http:manager:update' ) );
},
uploadToDrive() {
return gulp.src( './' )
.pipe( shell( 'npm run drive:upload' ) );
},
gitTagRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run git:tag:release' ) );
},
gitUploadRelease() {
return gulp.src( './' )
.pipe( shell( 'npm run git:upload:release' ) );
},
webpackAddOns() {
const { root } = config.paths;
const webpackConfigPath = path.join( root, 'webpack.config.js' );
let command = 'echo "no webpack.config.js found, skipping legacy webpack build for Add-ons"';
if ( fs.existsSync( webpackConfigPath ) ) {
command = combineCommandParts( [
`cd "${ root }"`,
'npm run build:dev',
'npm run build:prod',
] );
console.log( 'Running legacy webpack build for Add-ons: ', command );
}
return gulp.src( './' )
.pipe( shell( command ) );
},
}, config?.tasks?.builtins?.shell || {} );