use a Metadata class
[pharext/pharext] / build / create-phar.php
index c03ba8e2f3aac586a15256c57eb212be83ec700d..409bf8e3a3a5a3c38db6c6c47169b0185c85eae7 100644 (file)
@@ -4,24 +4,25 @@
  * 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);
-       }
-}
+require_once __DIR__."/../src/pharext/Version.php";
 
-$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");