#!/usr/bin/env php . */ require 'vendor/autoload.php'; use Spatie\Php7to5\DirectoryConverter; if (!isset($argv[1])) { die('This script requires a parameter with the commit number to turn into a phar'); } function rimraf($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != '.' && $object != '..') { if (is_dir($dir.'/'.$object)) { rimraf($dir.'/'.$object); } else { unlink($dir.'/'.$object); } } } rmdir($dir); } } @unlink('madeline.phar'); rimraf('phar'); rimraf('composer'); mkdir('phar'); mkdir('composer'); chdir('composer'); file_put_contents('composer.json', '{ "name": "danog/madelineprototests", "minimum-stability":"dev", "require": { "danog/madelineproto": "dev-master#'.$argv[1].'" }, "repositories": [ { "type": "git", "url": "https://github.com/danog/phpseclib" } ], "authors": [ { "name": "Daniil Gentili", "email": "daniil@daniil.it" } ] }'); shell_exec('composer update'); (new DirectoryConverter(__DIR__.'/composer', ['.php']))->alsoCopyNonPhpFiles()->savePhp5FilesTo(__DIR__.'/phar'); $p = new Phar(__DIR__.'/madeline.phar', 0, 'madeline.phar'); $p->buildFromDirectory(__DIR__.'/phar', '/^((?!tests).)*(\.php|\.py|\.tl|\.json)$/i'); $p->addFromString('.git/refs/heads/master', file_get_contents(__DIR__.'/.git/refs/heads/master')); $p->setStub('');