#!/usr/bin/env php $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); } }