$version = file_get_contents(__DIR__ . '/VERSION'); } $phar_path = __DIR__ . "/dist/shade-{$version}.phar"; if (is_file($phar_path)) { print "File '{$phar_path}' exists. Overwrite (y/n)?\n"; if (strtolower(trim(fgets(STDIN))) === 'y') { unlink($phar_path); } else { die("Done, file kept...\n"); } } require 'vendor/autoload.php'; use Phine\Phar\Builder, Phine\Phar\Stub; $skip_if_found = ['/.git', '/.svn', '/smarty/documentation', '/smarty/development', '/tests', '/Tests']; $source_path_strlen = strlen(__DIR__); $builder = Builder::create($phar_path); $builder->addFile(__DIR__ . '/LICENSE', 'LICENSE'); $builder->addFile(__DIR__ . '/VERSION', 'VERSION'); foreach (['bin', 'src', 'vendor'] as $dir_to_add) { /** * @var RecursiveDirectoryIterator[] $iterator */ foreach ($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__ . '/' . $dir_to_add, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) { $pathname = $item->getPathname(); $short_pathname = substr($pathname, $source_path_strlen + 1); foreach ($skip_if_found as $what) { if (strpos($pathname, $what) !== false) { continue 2; } } if ($item->isDir()) {
<?php require 'libraries/autoload.php'; use Phine\Phar\Builder; use Phine\Phar\Stub; @unlink('manialive.phar'); $builder = Builder::create('manialive.phar'); class ManiaLiveIterator extends RecursiveFilterIterator { public function accept() { $excludeFiles = array('.git', 'config.ini'); $path = explode(DIRECTORY_SEPARATOR, $this->current()->getPath()); return !in_array('.git', $path, true) && !in_array($this->current()->getFilename(), $excludeFiles); } } $iterator = new RecursiveIteratorIterator(new ManiaLiveIterator(new RecursiveDirectoryIterator(__DIR__, RecursiveDirectoryIterator::SKIP_DOTS)), RecursiveIteratorIterator::LEAVES_ONLY); $builder->buildFromIterator($iterator, __DIR__); $builder->setStub(Stub::create()->mapPhar('manialive.phar')->addRequire('bootstrapper.php')->getStub());
<?php require './vendor/autoload.php'; use Phine\Phar\Builder; use Phine\Phar\Stub; // create a new Phar instance $builder = Builder::create('./build/GettyImagesApi.phar'); $builder->buildFromDirectory('./src'); $builder->setStub(Stub::create()->addRequire('GettyImages_Client.php')->mapPhar("GettyImagesApi.phar")->selfExtracting()->getStub());