On Wed, Jun 10, 2009 at 6:44 PM, Greg Beaver<g...@chiaraquartet.net> wrote:
> Pierre Joye wrote:
>> On Wed, Jun 10, 2009 at 5:36 PM, Greg Beaver<g...@chiaraquartet.net> wrote:
>>
>>> Hi,
>>>
>>> I don't see an obvious way to build the phar.phar on windows.
>>>
>>> Can someone with knowledge of how configure.js works (i.e. a Pierre)
>>> give me a tip on how to tell it to make phar.phar after building
>>> Release_TS/php.exe or Debug_TS/php.exe?
>>>
>>> Otherwise, it would also be easy to provide a simple script that builds
>>> the phar.phar, and have the snapshot builder run the script.
>>>
>>> Which way would be better?
>>>
>>
>> Can you create it from PHP/using a php script?
>>
>> If yes, we can add it to mkdist.php easily.
> Fantastic, in that case, all that needs to be added to mkdist.php is this:
>
> echo "Generating phar.phar\r\n";
> $phar = new Phar($path_to_php . '/phar.phar', 0, 'pharcommand');
> foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) {
>    if ($file->isDir() || $file == 'phar.php') continue;
>    echo 'adding ', $file, "\r\n";
>    $phar[(string) $file] = file_get_contents($path_to_phar.  '/phar/' .
> $file);
> }
> $phar->setSignatureAlgorithm(Phar::SHA1);
> $stub = file($path_to_phar . '/phar/phar.php');
> unset($stub[0]); // remove hashbang
> $phar->setStub(implode('', $stub));
> echo "Creating phar.phar.bat\r\n";
> file_put_contents($path_to_php . '/phar.phar.bat', 'php phar.phar %1 %2
> %3 %4 %5 %6 %7 %8 %9\r\n");
>
> That should do it.  The only problem is that the user will need to
> adjust the path of phar.phar at install-time, but I don't see any
> obvious way around this outside of the win32 installer.
>
> Note that $path_to_php should be the equivalent of C:\php5 and
> $path_to_phar should be C:\php5\ext\phar

We don't know these paths when on unzip the releases in some random
directories. Maybe that should be something to add in the installer
instead?

But reading this little script, why don't you detect magically where
phar.bat is in phar.bat and then call phar.phar from there? It is
possible to do that in batch files (see
http://cvs.php.net/viewvc.cgi/php-internals-win/script/ there are some
dirty examples there).

Cheers,
-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to