X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=build%2Fcreate-phar.php;h=d2804a8c00fe12e2ffd09c3573dabbb66a13aaeb;hb=052ea3008a116f3eb9cc5607f76571b705cb10a7;hp=c03ba8e2f3aac586a15256c57eb212be83ec700d;hpb=0ff7b26bce8f0dfbd1d4d45313705a94f2ac5e28;p=pharext%2Fpharext diff --git a/build/create-phar.php b/build/create-phar.php index c03ba8e..d2804a8 100644 --- a/build/create-phar.php +++ b/build/create-phar.php @@ -4,24 +4,23 @@ * Creates bin/pharext, invoked through the Makefile */ -$pkguniq = uniqid(); -$pkgname = __DIR__."/../bin/pharext"; -$tmpname = "$pkgname.$pkguniq.phar.tmp"; +set_include_path(dirname(__DIR__)."/src"); +spl_autoload_register(function($c) { + return include strtr($c, "\\_", "//") . ".php"; +}); -if (file_exists($tmpname)) { - if (!unlink($tmpname)) { - fprintf(STDERR, "%s\n", error_get_last()["message"]); - exit(3); - } -} - -$package = new \Phar($tmpname, 0, "pharext.phar"); -$package->buildFromDirectory(dirname(__DIR__)."/src", "/^.*\.php$/"); -$package->setDefaultStub("pharext_packager.php"); -$package->setStub("#!/usr/bin/php -dphar.readonly=0\n".$package->getStub()); -unset($package); +$file = (new pharext\Task\PharBuild(null, pharext\Metadata::all() + [ + "name" => "pharext", + "stub" => "pharext_packager.php", + "license" => file_get_contents(__DIR__."/../LICENSE") +], false))->run(); -if (!rename($tmpname, $pkgname)) { - fprintf(STDERR, "%s\n", error_get_last()["message"]); - exit(4); +if (getenv("SIGN")) { + $pass = (new pharext\Task\Askpass)->run(); + $sign = new pharext\Task\PharSign($file, __DIR__."/pharext.key", $pass); + $pkey = $sign->run(); + $pkey->exportPublicKey(__DIR__."/../bin/pharext.pubkey"); } + +/* we do not need the extra logic of Task\PharRename */ +rename($file, __DIR__."/../bin/pharext");