phar build script
authorChristian Weiske <cweiske@cweiske.de>
Wed, 7 Sep 2016 19:49:21 +0000 (21:49 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 7 Sep 2016 19:49:21 +0000 (21:49 +0200)
.gitignore [new file with mode: 0644]
build.xml [new file with mode: 0644]
src/phar-stub.php [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..6b2102d
--- /dev/null
@@ -0,0 +1,4 @@
+/dist/
+/lib/
+/bin/phar-shpub.php
+/README.html
diff --git a/build.xml b/build.xml
new file mode 100644 (file)
index 0000000..6f0ed5c
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project name="shpub" default="phar" basedir=".">
+
+ <property name="version"  value="0.0.1" />
+ <property name="pharfile" value="${phing.dir}/dist/${phing.project.name}-${version}.phar" />
+ <property name="libdir" value="${phing.dir}/lib"/>
+
+ <fileset id="fs.phar" dir="${phing.dir}">
+  <include name="bin/**"/>
+  <include name="lib/**"/>
+  <include name="src/**"/>
+
+  <include name="README.rst"/>
+
+  <exclude name="bin/shpub.php"/>
+ </fileset>
+
+
+ <typedef name="pearPackageFileSet" classname="phing.types.PearPackageFileSet" />
+
+ <target name="phar" depends="collectdeps"
+         description="Create zip file for release"
+ >
+  <!-- strip the shebang  -->
+  <copy file="${phing.dir}/bin/shpub.php" tofile="${phing.dir}/bin/phar-shpub.php">
+   <filterchain>
+    <striplinecomments>
+     <comment value="#" />
+    </striplinecomments>
+   </filterchain>
+  </copy>
+
+  <mkdir dir="${phing.dir}/dist"/>
+  <delete file="${pharfile}"/>
+  <pharpackage basedir="${phing.dir}"
+   destfile="${pharfile}"
+   stub="${phing.dir}/src/phar-stub.php"
+   alias="shpub.phar"
+  >
+   <fileset refid="fs.phar"/>
+  </pharpackage>
+
+  <exec executable="chmod" checkreturn="1">
+   <arg value="+x"/>
+   <arg file="${pharfile}"/>
+  </exec>
+ </target>
+
+
+ <target name="collectdeps" description="Copy package dependencies to lib/">
+  <delete dir="${libdir}"/>
+  <mkdir dir="${libdir}"/>
+
+  <pearPackageFileset id="dep-Console_CommandLine" package="pear.php.net/Console_CommandLine"/>
+  <pearPackageFileset id="dep-HTTP_Request2" package="pear.php.net/HTTP_Request2"/>
+  <pearPackageFileset id="dep-Net_URL2" package="pear.php.net/Net_URL2"/>
+  <pearPackageFileset id="dep-PEAR" package="pear.php.net/PEAR">
+   <include name="PEAR/Exception.php"/>
+  </pearPackageFileset>
+
+  <copy todir="${libdir}">
+   <fileset refid="dep-Console_CommandLine"/>
+   <fileset refid="dep-HTTP_Request2"/>
+   <fileset refid="dep-Net_URL2"/>
+   <fileset refid="dep-PEAR"/>
+  </copy>
+ </target>
+
+
+ <target name="docs" description="render documentation">
+  <rst file="README.rst"/>
+ </target>
+
+</project>
diff --git a/src/phar-stub.php b/src/phar-stub.php
new file mode 100644 (file)
index 0000000..3b09dd9
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/env php
+<?php
+/**
+ * Phar stub file for shpub. Handles startup of the .phar file.
+ *
+ * PHP version 5
+ *
+ * @category  Tools
+ * @package   shpub
+ * @author    Christian Weiske <cweiske@cweiske.de>
+ * @copyright 2016 Christian Weiske
+ * @license   http://www.gnu.org/licenses/agpl.html GNU AGPL v3
+ * @link      http://cweiske.de/shpub.htm
+ */
+if (!in_array('phar', stream_get_wrappers()) || !class_exists('Phar', false)) {
+    echo "Phar extension not avaiable\n";
+    exit(255);
+}
+
+//Phar::interceptFileFuncs();
+set_include_path(
+    'phar://' . __FILE__
+    . PATH_SEPARATOR . 'phar://' . __FILE__ . '/lib/'
+);
+
+require 'phar://' . __FILE__ . '/bin/phar-shpub.php';
+__HALT_COMPILER();
+?>