fix shebang
[pharext/pharext] / build / create-phar.php
index c03ba8e2f3aac586a15256c57eb212be83ec700d..26ac6e93899ece94ad582c5fa6359e19be51cc97 100644 (file)
@@ -4,24 +4,22 @@
  * Creates bin/pharext, invoked through the Makefile
  */
 
-$pkguniq = uniqid();
-$pkgname = __DIR__."/../bin/pharext";
-$tmpname = "$pkgname.$pkguniq.phar.tmp";
+set_include_path(dirname(__DIR__)."/src:".get_include_path());
+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, __DIR__."/../src/pharext_packager.php", pharext\Metadata::all() + [
+       "name" => "pharext",
+       "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");