pharext/pharext
9 years agos/CliCommand/Cli\Command/g
Michael Wallner [Thu, 3 Sep 2015 10:53:55 +0000 (12:53 +0200)] 
s/CliCommand/Cli\Command/g

9 years agos/CliArgs/Cli\Args/g
Michael Wallner [Thu, 3 Sep 2015 10:51:49 +0000 (12:51 +0200)] 
s/CliArgs/Cli\Args/g

9 years agono need for an array_column fallback, because our extensive yield <expr> usage alread...
Michael Wallner [Thu, 3 Sep 2015 10:49:32 +0000 (12:49 +0200)] 
no need for an array_column fallback, because our extensive yield <expr> usage already requires 5.5+

9 years agocheck links and copy permissions
Michael Wallner [Thu, 3 Sep 2015 07:30:50 +0000 (09:30 +0200)] 
check links and copy permissions

9 years agolet's updarte the pharext metadata, too
Michael Wallner [Thu, 3 Sep 2015 07:18:31 +0000 (09:18 +0200)] 
let's updarte the pharext metadata, too

9 years agobin/pharext.update merge=binary
Michael Wallner [Wed, 2 Sep 2015 17:02:28 +0000 (19:02 +0200)] 
bin/pharext.update merge=binary

9 years agofix tests
Michael Wallner [Wed, 2 Sep 2015 15:46:44 +0000 (17:46 +0200)] 
fix tests

9 years agoadd bin/pharext.update
Michael Wallner [Wed, 2 Sep 2015 15:01:37 +0000 (17:01 +0200)] 
add bin/pharext.update

Updates the pharext code within an .ext.phar without the real need of re-packaging.

Usage:

  $ ./bin/pharext.update [-hvq] [--] <path ...>

    -h|--help                Display this help
    -v|--verbose             More output
    -q|--quiet               Less output
    --signature              Show pharext signature
    --license                Show pharext license
    --version                Show pharext version
    --   path                Path to .ext.phar to update (REQUIRED) (MULTIPLE)

9 years agosupport for positional args
Michael Wallner [Wed, 2 Sep 2015 14:46:36 +0000 (16:46 +0200)] 
support for positional args

9 years agofix shebang
Michael Wallner [Wed, 2 Sep 2015 09:56:38 +0000 (11:56 +0200)] 
fix shebang

9 years agoMerge pull request #3 from gitter-badger/gitter-badge
Michael Wallner [Tue, 1 Sep 2015 18:33:18 +0000 (20:33 +0200)] 
Merge pull request #3 from gitter-badger/gitter-badge

Add a Gitter chat badge to README.md

9 years agomore failure checks
Michael Wallner [Tue, 1 Sep 2015 17:28:02 +0000 (19:28 +0200)] 
more failure checks

9 years agosupport for running .ext.phars without ext/phar
Michael Wallner [Tue, 25 Aug 2015 15:13:22 +0000 (17:13 +0200)] 
support for running .ext.phars without ext/phar

9 years agoremove hard dependency on ext/posix
Michael Wallner [Wed, 19 Aug 2015 19:39:04 +0000 (21:39 +0200)] 
remove hard dependency on ext/posix

9 years agoAdded Gitter badge 3/head
The Gitter Badger [Thu, 6 Aug 2015 09:55:09 +0000 (09:55 +0000)] 
Added Gitter badge

9 years agotrigger mirror
Michael Wallner [Mon, 15 Jun 2015 06:54:55 +0000 (08:54 +0200)] 
trigger mirror

9 years agoback to dev
Michael Wallner [Wed, 20 May 2015 06:39:24 +0000 (08:39 +0200)] 
back to dev

9 years agorelease v4.0.0 v4.0.0
Michael Wallner [Wed, 20 May 2015 06:39:24 +0000 (08:39 +0200)] 
release v4.0.0

9 years agoflush bin
Michael Wallner [Tue, 19 May 2015 13:32:44 +0000 (15:32 +0200)] 
flush bin

9 years agofix trailing newline in quiet mode
Michael Wallner [Tue, 19 May 2015 13:32:23 +0000 (15:32 +0200)] 
fix trailing newline in quiet mode

9 years agofix basic sourcedir
Michael Wallner [Mon, 18 May 2015 15:11:04 +0000 (17:11 +0200)] 
fix basic sourcedir

9 years agoadd Cli\Args\Help
Michael Wallner [Mon, 18 May 2015 13:20:52 +0000 (15:20 +0200)] 
add Cli\Args\Help

9 years agolicense helper
Michael Wallner [Fri, 15 May 2015 10:52:54 +0000 (12:52 +0200)] 
license helper

9 years agofix build
Michael Wallner [Fri, 15 May 2015 08:27:17 +0000 (10:27 +0200)] 
fix build

9 years agouse a Metadata class
Michael Wallner [Fri, 15 May 2015 08:18:01 +0000 (10:18 +0200)] 
use a Metadata class

9 years agouse additional file_exists checks
Michael Wallner [Fri, 15 May 2015 07:48:31 +0000 (09:48 +0200)] 
use additional file_exists checks

9 years agocorrectly bail out on non-existing INI file
Michael Wallner [Fri, 15 May 2015 07:44:35 +0000 (09:44 +0200)] 
correctly bail out on non-existing INI file

9 years agosilence possible notices
Michael Wallner [Thu, 14 May 2015 16:59:06 +0000 (18:59 +0200)] 
silence possible notices

9 years agoflush bin
Michael Wallner [Fri, 8 May 2015 10:09:50 +0000 (12:09 +0200)] 
flush bin

9 years agosupport for git tags/branches
Michael Wallner [Fri, 8 May 2015 10:09:03 +0000 (12:09 +0200)] 
support for git tags/branches

9 years agoadd Cli\Args::toArray()
Michael Wallner [Fri, 8 May 2015 08:54:09 +0000 (10:54 +0200)] 
add Cli\Args::toArray()

9 years agoback to dev
Michael Wallner [Wed, 8 Apr 2015 10:17:40 +0000 (12:17 +0200)] 
back to dev

9 years agorelease v3.0.1 v3.0.1
Michael Wallner [Wed, 8 Apr 2015 10:17:40 +0000 (12:17 +0200)] 
release v3.0.1

9 years agofix stream progress notification with resetting bytes_max
Michael Wallner [Wed, 8 Apr 2015 09:21:50 +0000 (11:21 +0200)] 
fix stream progress notification with resetting bytes_max

9 years agoback to dev
Michael Wallner [Mon, 30 Mar 2015 20:10:13 +0000 (22:10 +0200)] 
back to dev

9 years agorelease v3.0.0 v3.0.0
Michael Wallner [Mon, 30 Mar 2015 20:10:13 +0000 (22:10 +0200)] 
release v3.0.0

9 years agofix verbose packaging
Michael Wallner [Mon, 30 Mar 2015 20:09:08 +0000 (22:09 +0200)] 
fix verbose packaging

9 years agofilter {.git,.hg.svn}
Michael Wallner [Mon, 30 Mar 2015 19:45:57 +0000 (21:45 +0200)] 
filter {.git,.hg.svn}

9 years agotypo
Michael Wallner [Mon, 30 Mar 2015 19:19:05 +0000 (21:19 +0200)] 
typo

9 years agofix basic source dir
Michael Wallner [Mon, 30 Mar 2015 09:31:26 +0000 (11:31 +0200)] 
fix basic source dir

9 years agofix for bug #64343
Michael Wallner [Mon, 30 Mar 2015 09:25:40 +0000 (11:25 +0200)] 
fix for bug #64343

9 years agobasic source dirs && general tarball fixup
Michael Wallner [Sun, 29 Mar 2015 08:22:53 +0000 (10:22 +0200)] 
basic source dirs && general tarball fixup

9 years agoconsistent verbosity
Michael Wallner [Sat, 28 Mar 2015 12:57:46 +0000 (13:57 +0100)] 
consistent verbosity

9 years agoverbose packaging
Michael Wallner [Sat, 28 Mar 2015 10:58:36 +0000 (11:58 +0100)] 
verbose packaging

9 years agoprivate tempnames
Michael Wallner [Sat, 28 Mar 2015 10:58:10 +0000 (11:58 +0100)] 
private tempnames

9 years agofix for php-5.5
Michael Wallner [Sat, 28 Mar 2015 07:11:10 +0000 (08:11 +0100)] 
fix for php-5.5

9 years agofix for symlinks
Michael Wallner [Sat, 28 Mar 2015 07:10:53 +0000 (08:10 +0100)] 
fix for symlinks

9 years agoupdate README
Michael Wallner [Fri, 27 Mar 2015 19:47:35 +0000 (20:47 +0100)] 
update README

9 years agomore refactoring; now the package hook starts to make sense
Michael Wallner [Fri, 27 Mar 2015 19:08:44 +0000 (20:08 +0100)] 
more refactoring; now the package hook starts to make sense

9 years agoCS
Michael Wallner [Wed, 25 Mar 2015 06:32:21 +0000 (07:32 +0100)] 
CS

9 years agoconsistent exit codes
Michael Wallner [Tue, 24 Mar 2015 19:49:27 +0000 (20:49 +0100)] 
consistent exit codes

9 years agotypo
Michael Wallner [Tue, 24 Mar 2015 19:35:23 +0000 (20:35 +0100)] 
typo

9 years agoconsistent help messages
Michael Wallner [Tue, 24 Mar 2015 19:34:30 +0000 (20:34 +0100)] 
consistent help messages

9 years agosupport for zend_extension
Michael Wallner [Tue, 24 Mar 2015 18:15:57 +0000 (19:15 +0100)] 
support for zend_extension

9 years agomajor refactoring under the hood
Michael Wallner [Tue, 24 Mar 2015 16:58:24 +0000 (17:58 +0100)] 
major refactoring under the hood

9 years agobe more strict in what arguments to accept
Michael Wallner [Sun, 22 Mar 2015 14:52:21 +0000 (15:52 +0100)] 
be more strict in what arguments to accept

9 years agofix installer tempdir usage
Michael Wallner [Sun, 22 Mar 2015 08:13:42 +0000 (09:13 +0100)] 
fix installer tempdir usage

9 years agodownload progress, cleanups
Michael Wallner [Sun, 22 Mar 2015 08:09:29 +0000 (09:09 +0100)] 
download progress, cleanups

9 years agoadd ExecCmd and Tempdir
Michael Wallner [Sun, 22 Mar 2015 06:08:35 +0000 (07:08 +0100)] 
add ExecCmd and Tempdir

9 years agosupport git clones and (PECL) package archives as sources
Michael Wallner [Sat, 21 Mar 2015 19:37:16 +0000 (20:37 +0100)] 
support git clones and (PECL) package archives as sources

9 years agosupport packages that have been pickle'd
Michael Wallner [Sat, 21 Mar 2015 14:56:05 +0000 (15:56 +0100)] 
support packages that have been pickle'd

9 years agoback to dev
Michael Wallner [Tue, 10 Mar 2015 10:38:16 +0000 (11:38 +0100)] 
back to dev

9 years agorelease v2.0.1 v2.0.1
Michael Wallner [Tue, 10 Mar 2015 10:38:16 +0000 (11:38 +0100)] 
release v2.0.1

9 years agoback to dev
Michael Wallner [Mon, 9 Mar 2015 20:41:19 +0000 (21:41 +0100)] 
back to dev

9 years agorelease v2.0.0 v2.0.0
Michael Wallner [Mon, 9 Mar 2015 20:41:19 +0000 (21:41 +0100)] 
release v2.0.0

9 years agosed -i is not portable
Michael Wallner [Mon, 9 Mar 2015 20:40:50 +0000 (21:40 +0100)] 
sed -i is not portable

9 years agomore links
Michael Wallner [Mon, 9 Mar 2015 20:24:57 +0000 (21:24 +0100)] 
more links

9 years agofail on error
Michael Wallner [Mon, 9 Mar 2015 20:14:40 +0000 (21:14 +0100)] 
fail on error

9 years agoprepare 2.0
Michael Wallner [Mon, 9 Mar 2015 20:10:35 +0000 (21:10 +0100)] 
prepare 2.0

9 years agopreserve symlinks
Michael Wallner [Mon, 9 Mar 2015 16:26:28 +0000 (17:26 +0100)] 
preserve symlinks

9 years agomissing file
Michael Wallner [Mon, 9 Mar 2015 14:48:29 +0000 (15:48 +0100)] 
missing file

9 years agoINI file activation
Michael Wallner [Mon, 9 Mar 2015 10:28:50 +0000 (11:28 +0100)] 
INI file activation

9 years agofix pharext_install.php generation
Michael Wallner [Mon, 9 Mar 2015 10:26:44 +0000 (11:26 +0100)] 
fix pharext_install.php generation

9 years agofix tests
Michael Wallner [Mon, 9 Mar 2015 08:09:40 +0000 (09:09 +0100)] 
fix tests

9 years agomerge=binary for bin/pharext
Michael Wallner [Mon, 9 Mar 2015 07:55:55 +0000 (08:55 +0100)] 
merge=binary for bin/pharext

9 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

9 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

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

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

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

9 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

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

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

9 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

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

9 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

9 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!

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

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

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

9 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---

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

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

9 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

9 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

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

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

9 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

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

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