source: sandbox/expresso-solr/expressoMail1_2/solrclient/phar/buildphar.php @ 7588

Revision 7588, 3.2 KB checked in by adir, 11 years ago (diff)

Ticket #000 - Adicionando a integracao de buscas com Solr na base a ser isnerida na comunidade

Line 
1<?php
2/**
3 * Copyright 2012 Bas de Nooijer. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 *    this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 *    this listof conditions and the following disclaimer in the documentation
13 *    and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 *
27 * The views and conclusions contained in the software and documentation are
28 * those of the authors and should not be interpreted as representing official
29 * policies, either expressed or implied, of the copyright holder.
30 *
31 * @copyright Copyright 2012 Bas de Nooijer <solarium@raspberry.nl>
32 * @license http://github.com/basdenooijer/solarium/raw/master/COPYING
33 * @link http://www.solarium-project.org/
34 */
35
36
37// Check phar.readonly ini setting
38if (ini_get('phar.readonly') == '1') {
39    exit("Your php.ini has phar.readonly enabled. Phar cannot be created. Please alter your php.ini first.\n");
40}
41
42// You can optionally use arguments to enable compression and whitespace/comment stripping.
43// Example: "php buildphar.php -s 1 -c 1"
44// -c with a value of 1 enables compression, multiple phars will be created
45// -s with a value of 1 enables stripping
46$options = getopt('s:c:');
47$compress = (isset($options['c']) && $options['c'] == '1');
48$strip = (isset($options['s']) && $options['s'] == '1');
49
50$start = microtime(true);
51
52// Create a new Solarium phar file
53@unlink('solarium.phar');
54$phar = new Phar('solarium.phar', 0, 'solarium.phar');
55$phar->setStub(file_get_contents("stub.php"));
56$phar->setSignatureAlgorithm(Phar::SHA1);
57
58// Add files to the phar
59$basePath = realpath(__DIR__."/../library/Solarium");
60if ($strip) {
61    $directoryIterator = new RecursiveIteratorIterator (new RecursiveDirectoryIterator ($basePath), RecursiveIteratorIterator::SELF_FIRST);
62    foreach ($directoryIterator as $file) {
63        if ( preg_match ('/\\.php$/i', $file) ) {
64            $phar->addFromString (substr ($file, strlen ($basePath) + 1), php_strip_whitespace ($file));
65        }
66    }
67} else {
68    $phar->buildFromDirectory($basePath, '/\.php$/');
69}
70
71// Create compressed versions
72if ($compress) {
73    $phar->compress(Phar::BZ2);
74    $phar->compress(Phar::GZ);
75}
76
77$time = round(microtime(true)-$start,5);
78echo "\nDONE ($time seconds)\n\n";
Note: See TracBrowser for help on using the repository browser.