]> git.m6w6.name Git - pharext/pharext/log
pharext/pharext
10 years agomerge=binary for bin/pharext
Michael Wallner [Mon, 9 Mar 2015 07:55:55 +0000 (08:55 +0100)] 
merge=binary for bin/pharext

10 years agouse ls-tree instead of ls-files
Michael Wallner [Sun, 8 Mar 2015 19:54:31 +0000 (20:54 +0100)] 
use ls-tree instead of ls-files

10 years agoreorder code and files, remove the filtered source dir implementation
Michael Wallner [Sun, 8 Mar 2015 19:42:03 +0000 (20:42 +0100)] 
reorder code and files, remove the filtered source dir implementation

10 years agoopenssl signing
Michael Wallner [Sun, 8 Mar 2015 11:25:26 +0000 (12:25 +0100)] 
openssl signing

10 years agofix compressed phars
Michael Wallner [Sun, 8 Mar 2015 11:26:10 +0000 (12:26 +0100)] 
fix compressed phars

10 years agoback to dev
Michael Wallner [Fri, 6 Mar 2015 22:08:53 +0000 (23:08 +0100)] 
back to dev

10 years agorelease v1.1.0 v1.1.0
Michael Wallner [Fri, 6 Mar 2015 22:08:53 +0000 (23:08 +0100)] 
release v1.1.0

10 years agoadd tests
Michael Wallner [Fri, 6 Mar 2015 22:06:45 +0000 (23:06 +0100)] 
add tests

10 years agoupdate README
Michael Wallner [Fri, 6 Mar 2015 21:04:29 +0000 (22:04 +0100)] 
update README

10 years agoMerge branch 'master' of github.com:m6w6/pharext
Michael Wallner [Fri, 6 Mar 2015 19:03:45 +0000 (20:03 +0100)] 
Merge branch 'master' of github.com:m6w6/pharext

10 years agocleanup
Michael Wallner [Fri, 6 Mar 2015 19:02:59 +0000 (20:02 +0100)] 
cleanup

10 years agofix exception when there's no pharext_install.php
Michael Wallner [Fri, 6 Mar 2015 17:52:27 +0000 (18:52 +0100)] 
fix exception when there's no pharext_install.php

10 years agoShip your dependencies as phars inside the phar
Michael Wallner [Fri, 6 Mar 2015 15:51:57 +0000 (16:51 +0100)] 
Ship your dependencies as phars inside the phar

Madness didn't stop, just have a look:

$ cd pecl_http.git
$ pharext -qps ../propro.git
$ pharext -qps ../raphf.git
$ pharext -qps .
$ ./pecl_http-2.4.0dev.ext.phar --sudo

Output:

Installing propro-1.0.1.ext.phar ...
Running phpize ... OK
Running configure ... OK
Running make ... OK
Running install ... OK
Cleaning up /tmp/propro-1.0.1.ext.phar.54f9cbc1488a0 ...
Don't forget to activiate the extension in your php.ini!

Installing raphf-1.0.5.ext.phar ...
Running phpize ... OK
Running configure ... OK
Running make ... OK
Running install ... OK
Cleaning up /tmp/raphf-1.0.5.ext.phar.54f9cbc148a50 ...
Don't forget to activiate the extension in your php.ini!

Installing pecl_http-2.4.0dev.ext.phar ...
Running phpize ... OK
Running configure ... OK
Running make ... OK
Running install ... OK
Cleaning up /tmp/pecl_http-2.4.0dev.ext.phar.54f9cbc14869f ...
Don't forget to activiate the extension in your php.ini!

10 years agobetter handling of sudo output
Michael Wallner [Fri, 6 Mar 2015 12:32:51 +0000 (13:32 +0100)] 
better handling of sudo output

10 years agosimplify
Michael Wallner [Fri, 6 Mar 2015 12:29:33 +0000 (13:29 +0100)] 
simplify

10 years agosupport --long-opt=arg
Michael Wallner [Fri, 6 Mar 2015 10:45:17 +0000 (11:45 +0100)] 
support --long-opt=arg

10 years agoImplement packager and installer hooks
Michael Wallner [Fri, 6 Mar 2015 08:11:02 +0000 (09:11 +0100)] 
Implement packager and installer hooks

==Packager hook
If not --pecl nor --git are explicitely given, look for a
pharext_install.php in --source. This script will be exectuted by the
Packager. It must return a callable with the following signature:

function(Packager $pkg, $path) : function(Packager $pkg, $path);

So, the callback should return another callable.
The primary callback is meant to set things like --name and --release,
so you don't have to on the command line; build automation FTW.
The secondary callback is meant to create the file iterator of the
source dir, but if you're in a git clone, you might easily just return a
new pharext\GitSourceDir and be done.

==Installer hook
The packager will look for a pharext_install.php file within the root of
the source dir. This script will be executed by the Installer; it must
return a callable with the following signature:

function(Installer $installer) : function(Installer $installer);

So, again, the callback should return another callable.
The primary callback is meant to add your own command line arguments to
the CliArgs parser, and the secnodary callback is meant to proccess
those args.

For --pecl source dirs a pharext_install.php script is automatically
generated from the package.xml.

==Examples for pecl_http

pharext_package.php
---8<---
<?php

namespace pharext;

return function(Packager $packager, $path) {
$args = $packager->getArgs();
$args->name = "pecl_http";
$args->release = current(preg_filter("/^.*PHP_PECL_HTTP_VERSION\s+\"(.*)\".*$/s", "\$1", file("../http.git/php_http.h")));
return function (Packager $packager, $path) {
return new GitSourceDir($packager, $path);
};
};
?>
--->8---

pharext_install.php
---8<---
<?php

namespace pharext;

return function(Installer $installer) {
$installer->getArgs()->compile([
[null, "with-http-zlib-dir", "Where to find zlib",
CliArgs::OPTARG],
[null, "with-http-libcurl-dir", "Where to find libcurl",
CliArgs::OPTARG],
[null, "with-http-libevent-dir", "Where to find libev{,ent{,2}}",
CliArgs::OPTARG],
[null, "with-http-libidn-dir", "Where to find libidn",
CliArgs::OPTARG],
]);

return function(Installer $installer) {
$opts = [
"with-http-zlib-dir",
"with-http-libcurl-dir",
"with-http-libevent-dir",
"with-http-libidn-dir",
];
$args = $installer->getArgs();
foreach ($opts as $opt) {
if (isset($args[$opt])) {
$args->configure = "--$opt=".$args[$opt];
}
}
};
};
?>
--->8---

10 years agoless noisy Makefile
Michael Wallner [Thu, 5 Mar 2015 14:56:22 +0000 (15:56 +0100)] 
less noisy Makefile

10 years agorelease target
Michael Wallner [Thu, 5 Mar 2015 14:35:32 +0000 (15:35 +0100)] 
release target

10 years agorefactor some commonly used code into a trait
Michael Wallner [Thu, 5 Mar 2015 14:27:09 +0000 (15:27 +0100)] 
refactor some commonly used code into a trait

10 years agodo not exit on compression failure
Michael Wallner [Thu, 5 Mar 2015 08:12:26 +0000 (09:12 +0100)] 
do not exit on compression failure

10 years agocleanup
Michael Wallner [Thu, 5 Mar 2015 08:09:28 +0000 (09:09 +0100)] 
cleanup

10 years agoadd CliArgsTest
Michael Wallner [Thu, 5 Mar 2015 08:03:13 +0000 (09:03 +0100)] 
add CliArgsTest

10 years agosupport concatenated short opts like -vps v1.0.3
Michael Wallner [Wed, 4 Mar 2015 19:18:27 +0000 (20:18 +0100)] 
support concatenated short opts like -vps

10 years agofix warning
Michael Wallner [Wed, 4 Mar 2015 19:10:02 +0000 (20:10 +0100)] 
fix warning

10 years agofix issue #1
Michael Wallner [Wed, 4 Mar 2015 19:06:57 +0000 (20:06 +0100)] 
fix issue #1

10 years agofix issue #2
Michael Wallner [Wed, 4 Mar 2015 18:57:58 +0000 (19:57 +0100)] 
fix issue #2

10 years agoadd link to pharext download of the latest release
Michael Wallner [Wed, 4 Mar 2015 17:29:17 +0000 (18:29 +0100)] 
add link to pharext download of the latest release

10 years agomissing vendor v1.0.1
Michael Wallner [Wed, 4 Mar 2015 17:21:33 +0000 (18:21 +0100)] 
missing vendor

10 years agoupdate with suggestions from beberlei
Michael Wallner [Wed, 4 Mar 2015 17:20:34 +0000 (18:20 +0100)] 
update with suggestions from beberlei

10 years agofix para v1.0.0
Michael Wallner [Wed, 4 Mar 2015 14:45:53 +0000 (15:45 +0100)] 
fix para

10 years agoignore bin/pharext
Michael Wallner [Wed, 4 Mar 2015 14:44:30 +0000 (15:44 +0100)] 
ignore bin/pharext

10 years agoingore phars
Michael Wallner [Wed, 4 Mar 2015 14:43:06 +0000 (15:43 +0100)] 
ingore phars

10 years ago-ext -> .ext
Michael Wallner [Wed, 4 Mar 2015 14:42:30 +0000 (15:42 +0100)] 
-ext -> .ext

10 years agoignore bin/pharext
Michael Wallner [Wed, 4 Mar 2015 14:41:30 +0000 (15:41 +0100)] 
ignore bin/pharext

10 years agoinit
Michael Wallner [Wed, 4 Mar 2015 14:32:06 +0000 (15:32 +0100)] 
init