@@ -15,6 +15,8 @@ const path = require('path');
1515const showdown = require ( 'showdown' ) ;
1616gulp . header = require ( 'gulp-header' ) ;
1717
18+ const { copyFilesWithBase, copyDirectoryContents} = require ( './copy-helpers' ) ;
19+
1820const appDirectory = fs . realpathSync ( process . cwd ( ) ) ;
1921const resolveApp = ( relativePath ) => path . resolve ( appDirectory , relativePath ) ;
2022
@@ -288,18 +290,16 @@ function createReadmePage(pluginDir, isLocal) {
288290 * @param {string } pluginDir The directory with the plugin source files.
289291 * @param {boolean } isLocal True if building for a local test. False if
290292 * building for gh-pages.
291- * @returns {* } gulp stream
292293 */
293294function preparePlugin ( pluginDir , isLocal ) {
294295 console . log ( `Preparing ${ pluginDir } plugin for deployment.` ) ;
295296 createPluginPage ( pluginDir , isLocal ) ;
296297 createReadmePage ( pluginDir , isLocal ) ;
297- return gulp
298- . src ( [ './plugins/' + pluginDir + '/build/test_bundle.js' ] , {
299- base : './plugins/' ,
300- allowEmpty : true ,
301- } )
302- . pipe ( gulp . dest ( './gh-pages/plugins/' ) ) ;
298+ copyFilesWithBase (
299+ [ path . join ( 'plugins' , pluginDir , 'build' , 'test_bundle.js' ) ] ,
300+ 'plugins' ,
301+ path . join ( 'gh-pages' , 'plugins' ) ,
302+ ) ;
303303}
304304
305305/**
@@ -328,8 +328,9 @@ function prepareToDeployPlugins(done) {
328328 const folders = getPluginFolders ( ) ;
329329 return gulp . parallel (
330330 folders . map ( function ( folder ) {
331- return function preDeployPlugin ( ) {
332- return preparePlugin ( folder , false ) ;
331+ return function preDeployPlugin ( done ) {
332+ preparePlugin ( folder , false ) ;
333+ done ( ) ;
333334 } ;
334335 } ) ,
335336 ) ( done ) ;
@@ -344,8 +345,9 @@ function prepareLocalPlugins(done) {
344345 const folders = getPluginFolders ( ) ;
345346 return gulp . parallel (
346347 folders . map ( function ( folder ) {
347- return function preDeployPlugin ( ) {
348- return preparePlugin ( folder , true ) ;
348+ return function preDeployPlugin ( done ) {
349+ preparePlugin ( folder , true ) ;
350+ done ( ) ;
349351 } ;
350352 } ) ,
351353 ) ( done ) ;
@@ -445,7 +447,6 @@ function createExamplePage(pageRoot, pagePath, demoConfig, isLocal) {
445447 * @param {boolean } isLocal True if building for a local test. False if
446448 * building for gh-pages.
447449 * @param {Function } done Completed callback.
448- * @returns {Function | undefined } Gulp task.
449450 */
450451function prepareExample ( exampleDir , isLocal , done ) {
451452 const baseDir = 'examples' ;
@@ -468,12 +469,13 @@ function prepareExample(exampleDir, isLocal, done) {
468469
469470 // Special case: do a straight copy for the devsite demo, with no wrappers.
470471 if ( packageJson . name == 'blockly-devsite-demo' ) {
471- return gulp
472- . src (
473- fileList . map ( ( f ) => path . join ( baseDir , exampleDir , f ) ) ,
474- { base : baseDir , allowEmpty : true } ,
475- )
476- . pipe ( gulp . dest ( './gh-pages/examples/' ) ) ;
472+ copyFilesWithBase (
473+ fileList . map ( ( f ) => path . join ( baseDir , exampleDir , f ) ) ,
474+ baseDir ,
475+ path . join ( 'gh-pages' , 'examples' ) ,
476+ ) ;
477+ done ( ) ;
478+ return ;
477479 }
478480
479481 // All other examples.
@@ -487,14 +489,14 @@ function prepareExample(exampleDir, isLocal, done) {
487489 // Copy over all other files mentioned in the demoConfig to the
488490 // correct directory.
489491 const assets = fileList . filter ( ( f ) => ! pageRegex . test ( f ) ) ;
490- let stream ;
491492 if ( assets . length ) {
492- stream = gulp . src (
493+ copyFilesWithBase (
493494 assets . map ( ( f ) => path . join ( baseDir , exampleDir , f ) ) ,
494- { base : baseDir , allowEmpty : true } ,
495+ baseDir ,
496+ path . join ( 'gh-pages' , 'examples' ) ,
495497 ) ;
496498 }
497- return stream . pipe ( gulp . dest ( './gh-pages/examples/' ) ) ;
499+ done ( ) ;
498500}
499501
500502/**
@@ -517,20 +519,17 @@ function getExampleFolders() {
517519 *
518520 * This is treated separately from other examples because it doesn't
519521 * get the same page chrome added to it.
520- * @returns {Function | undefined } Gulp task.
521522 */
522- function prepareDeveloperTools ( ) {
523+ async function prepareDeveloperTools ( ) {
523524 const baseDir = 'examples' ;
524525 const devToolsDir = 'developer-tools' ;
525526 console . log ( `Preparing developer-tools for deployment.` ) ;
526527
527- // Create target folder, if it doesn't exist.
528- fs . mkdirSync ( path . join ( 'gh-pages' , baseDir , devToolsDir ) , { recursive : true } ) ;
529-
530- // Copy all files from `dist/` subdirectory into the corresponding gh-pages directory
531- return gulp
532- . src ( './examples/developer-tools/dist/*' )
533- . pipe ( gulp . dest ( './gh-pages/examples/developer-tools' ) ) ;
528+ // Copy all files from `dist/` into the gh-pages developer-tools directory
529+ await copyDirectoryContents (
530+ path . join ( baseDir , devToolsDir , 'dist' ) ,
531+ path . join ( 'gh-pages' , baseDir , devToolsDir ) ,
532+ ) ;
534533}
535534
536535/**
0 commit comments