summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/bin/build-asset-cdn-json.php')
-rw-r--r--plugins/jetpack/bin/build-asset-cdn-json.php48
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" );