Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env php
- <?php
- $gulp = '/usr/local/lib/node_modules/gulp/bin/gulp.js';
- $cmd = [
- escapeshellcmd($gulp),
- '--color',
- ];
- foreach($argv as $index => $arg) {
- if($index) {
- $cmd[] = escapeshellarg($arg);
- }
- }
- $dir = getcwd();
- if(file_exists($dir .'/gulp.sh')) {
- $cmd[0] = escapeshellcmd($dir .'/gulp.sh');
- } else {
- $gulpdir = gulpDir($dir);
- if($gulpdir && $dir !== $gulpdir) {
- chdir($gulpdir);
- }
- }
- $r = 0;
- passthru(implode(' ', $cmd), $r);
- exit($r);
- function globTests($tests) {
- foreach($tests as $test) {
- $found = glob($test);
- foreach($found as $file) {
- if(is_file($file)) {
- return $file;
- }
- }
- }
- }
- function gulpDir($dir) {
- $dir_p1 = dirname($dir, 1);
- $dir_p2 = dirname($dir_p1, 1);
- $found = globTests([
- $dir . '/gulpfile.js',
- $dir . '/asset/gulpfile.js',
- $dir . '/assets/gulpfile.js',
- $dir . '/src/gulpfile.js',
- $dir_p1 . '/gulpfile.js',
- $dir_p2 . '/gulpfile.js',
- $dir . '/content/themes/*/gulpfile.js',
- $dir . '/content/themes/*/asset*/gulpfile.js',
- $dir . '/content/themes/*/src/gulpfile.js',
- $dir . '/content/themes/*/*/gulpfile.js',
- $dir . '/content/themes/*/*/*/gulpfile.js',
- $dir . '/themes/*/gulpfile.js',
- $dir . '/themes/*/asset*/gulpfile.js',
- $dir . '/themes/*/src/gulpfile.js',
- $dir . '/themes/*/*/gulpfile.js',
- $dir . '/themes/*/*/*/gulpfile.js',
- $dir . '/*/gulpfile.js',
- $dir . '/*/asset*/gulpfile.js',
- $dir . '/*/src/gulpfile.js',
- $dir . '/*/*/gulpfile.js',
- $dir . '/*/*/*/gulpfile.js',
- ]);
- if($found) {
- return dirname($found);
- }
- }
Add Comment
Please, Sign In to add comment