public function addLatestVersion($dir) { $files = pantr::fileset()->name('*.tgz')->relative()->in($dir); $highest = array_reduce($files, function ($pkg1, $pkg2) { if (is_null($pkg1)) { return $pkg2; } list($pkgname, $a) = explode('-', basename($pkg1, '.tgz')); list($pkgname, $b) = explode('-', basename($pkg2, '.tgz')); return version_compare($a, $b, '<') ? $pkg1 : $pkg2; }, null); $this->add($dir . DIRECTORY_SEPARATOR . $highest); }
public static function task($name, $desc, $files = null, $addVerboseOption = true) { if (is_null($files)) { $files = pantr::fileset()->name('*Test.php')->in('test'); } $task = pantr::task($name, $desc); if ($addVerboseOption) { $task = $task->option('verbose')->shorthand('v')->desc('Output detailed test information'); } return $task->run(function ($req = array()) use($files) { return PHPUnit::forAllTests($files)->run(isset($req['verbose'])); }); }
public static function rm($arg, $target_dir = '', $recursive = null) { if (!is_string($target_dir) && is_null($recursive)) { $recursive = $target_dir; $target_dir = ''; } $files = array_reverse(pantr::_getFinderFromArg($arg, $target_dir)); foreach ($files as $target) { if (!file_exists($target)) { pantr::writeAction('rm', $target . ' does not exist', pantr::INFO); return; } if (is_dir($target) && !is_link($target)) { // remove all files pantr::rm(pantr::fileset()->in($target)); // and now all empty directories pantr::rm(pantr::finder(self::TYPE_DIR)->in($target)); pantr::writeAction('rm', $target); rmdir($target); } else { pantr::writeAction('rm', $target); unlink($target); } } }