From 5b4aad0cf005595c240c24e1b085137fc7efab3a Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Mon, 14 Apr 2008 16:56:50 +0000 Subject: Use PHP to fetch the pear phar --- pear/Makefile.frag | 12 +--------- pear/fetch.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 pear/fetch.php (limited to 'pear') diff --git a/pear/Makefile.frag b/pear/Makefile.frag index 4a5456263d..fc7acc2f12 100644 --- a/pear/Makefile.frag +++ b/pear/Makefile.frag @@ -4,8 +4,6 @@ peardir=$(PEAR_INSTALLDIR) # Skip all php.ini files altogether PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dsafe_mode=0 -dopen_basedir= -derror_reporting=E_ALL -dmemory_limit=-1 -ddetect_unicode=0 -WGET = `which wget 2>/dev/null` -FETCH = `which fetch 2>/dev/null` install-pear-installer: $(SAPI_CLI_PATH) @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" @@ -16,15 +14,7 @@ install-pear: if test -f $(srcdir)/install-pear-nozlib.phar; then \ cp $(srcdir)/install-pear-nozlib.phar $(builddir)/install-pear-nozlib.phar; \ else \ - if test ! -z "$(WGET)" && test -x "$(WGET)"; then \ - "$(WGET)" http://pear.php.net/install-pear-nozlib.phar -nd -P $(builddir)/; \ - elif test ! -z "$(FETCH)" && test -x "$(FETCH)"; then \ - "$(FETCH)" -o $(builddir)/ http://pear.php.net/install-pear-nozlib.phar; \ - else \ - echo ""; \ - echo "No download utilities found. Don't know how to download PEAR archive."; \ - echo ""; \ - fi \ + $(top_builddir)/sapi/cli/php -n $(srcdir)/fetch.php http://pear.php.net/install-pear-nozlib.phar $(builddir)/install-pear-nozlib.phar; \ fi \ fi @if test -f $(builddir)/install-pear-nozlib.phar && $(mkinstalldirs) $(INSTALL_ROOT)$(peardir); then \ diff --git a/pear/fetch.php b/pear/fetch.php new file mode 100644 index 0000000000..a169c4443e --- /dev/null +++ b/pear/fetch.php @@ -0,0 +1,64 @@ + \n", $argv[0]); + exit(1); +} + +function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) { + static $filesize = null; + + switch($notification_code) { + case STREAM_NOTIFY_RESOLVE: + case STREAM_NOTIFY_AUTH_REQUIRED: + case STREAM_NOTIFY_COMPLETED: + case STREAM_NOTIFY_FAILURE: + case STREAM_NOTIFY_AUTH_RESULT: + /* Ignore */ + break; + + case STREAM_NOTIFY_REDIRECTED: + echo "Being redirected to: ", $message, "\n"; + break; + + case STREAM_NOTIFY_CONNECT: + echo "Conntected...\n"; + break; + + case STREAM_NOTIFY_FILE_SIZE_IS: + $filesize = $bytes_max; + echo "Filesize: ", $filesize, "\n"; + break; + + case STREAM_NOTIFY_MIME_TYPE_IS: + echo "Mime-type: ", $message, "\n"; + break; + + case STREAM_NOTIFY_PROGRESS: + if ($bytes_transferred > 0) { + if (!isset($filesize)) { + printf("\rUnknown filesize.. %2d kb done..", $bytes_transferred/1024); + } else { + $length = (int)(($bytes_transferred/$filesize)*100); + printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024); + } + } + break; + } +} + +isset($argv[1], $argv[2]) or usage($argv); + +$ctx = stream_context_create(null, array("notification" => "stream_notification_callback")); + +$fp = fopen($argv[1], "r", false, $ctx); +if (is_resource($fp) && file_put_contents($argv[2], $fp)) { + echo "\nDone!\n"; + exit(0); +} + +$err = error_get_last(); +echo "\nErrrrrorr..\n", $err["message"], "\n"; +exit(1); + + -- cgit v1.2.1