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