diff options
Diffstat (limited to 'plugins/jetpack/bin/build-asset-cdn-json.php')
-rw-r--r-- | plugins/jetpack/bin/build-asset-cdn-json.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/plugins/jetpack/bin/build-asset-cdn-json.php b/plugins/jetpack/bin/build-asset-cdn-json.php new file mode 100644 index 00000000..aebe99f4 --- /dev/null +++ b/plugins/jetpack/bin/build-asset-cdn-json.php @@ -0,0 +1,48 @@ +<?php + +// The repo root path. +$path = dirname( dirname( __FILE__ ) ) . '/'; + +// Build an iterator over all files in the repo that match the regex in the RegexIterator. +$directory = new RecursiveDirectoryIterator( $path ); +$iterator = new RecursiveIteratorIterator( $directory ); +$regex = new RegexIterator( $iterator, '/^.+\.(css|js)$/i', RecursiveRegexIterator::GET_MATCH ); + +$ignore_paths = array( + '_inc/client/', + 'bin/', + 'docker/', + 'docs/', + 'extensions/', + 'logs/', + 'node_modules/', + 'tests/', + 'tools/', + 'vendor/', +); + +$manifest = array(); +foreach ( $regex as $path_to_file => $value ) { + $path_from_repo_root = str_replace( $path, '', $path_to_file ); + + // Ignore top-level files. + if ( false === strpos( $path_from_repo_root, '/' ) ) { + continue; + } + + // Ignore explicit ignore list. + foreach ( $ignore_paths as $ignore_path ) { + if ( 0 === strpos( $path_from_repo_root, $ignore_path ) ) { + continue 2; + } + } + + $manifest[] = $path_from_repo_root; +} + +$export = var_export( $manifest, true ); + +file_put_contents( $path . 'modules/photon-cdn/jetpack-manifest.php', "<?php +// This file is autogenerated by bin/build-asset-cdn-json.php + +\$assets = $export;\r\n" ); |