adding zend project folders into old campcaster.
This commit is contained in:
parent
56abfaf28e
commit
7ef0c18b26
4045 changed files with 1054952 additions and 0 deletions
248
library/phing/tasks/ext/phk/PhkPackageTask.php
Normal file
248
library/phing/tasks/ext/phk/PhkPackageTask.php
Normal file
|
@ -0,0 +1,248 @@
|
|||
<?php
|
||||
/**
|
||||
* $Id: PhkPackageTask.php 905 2010-10-05 16:28:03Z mrook $
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information please see
|
||||
* <http://phing.info>.
|
||||
*/
|
||||
|
||||
require_once 'phing/Task.php';
|
||||
require_once 'phing/tasks/ext/phk/PhkPackageWebAccess.php';
|
||||
|
||||
/**
|
||||
* See {@link http://phk.tekwire.net/} for more information about PHK.
|
||||
*
|
||||
* @author Alexey Shockov <alexey@shockov.com>
|
||||
* @package phing.tasks.ext.phk
|
||||
*/
|
||||
class PhkPackageTask extends Task
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $outputFile;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $inputDirectory;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $phkCreatorPath;
|
||||
/**
|
||||
* @var PhkPackageWebAccess
|
||||
*/
|
||||
private $webAccess;
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $modifiers = array();
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $options = array();
|
||||
/**
|
||||
* @return PhkPackageWebAccess
|
||||
*/
|
||||
public function createWebAccess()
|
||||
{
|
||||
return ($this->webAccess = new PhkPackageWebAccess());
|
||||
}
|
||||
/**
|
||||
* @param string $crcCheck
|
||||
*/
|
||||
public function setCrcCheck($crcCheck)
|
||||
{
|
||||
$this->options['crc_check'] = ('true' == $crcCheck ? true : false);
|
||||
}
|
||||
/**
|
||||
* @param string $webRunScript
|
||||
*/
|
||||
public function setWebRunScript($webRunScript)
|
||||
{
|
||||
$this->options['web_run_script'] = $webRunScript;
|
||||
}
|
||||
/**
|
||||
* @param string $cliRunScript
|
||||
*/
|
||||
public function setCliRunScript($cliRunScript)
|
||||
{
|
||||
$this->options['cli_run_script'] = $cliRunScript;
|
||||
}
|
||||
/**
|
||||
* @param string $libRunScript
|
||||
*/
|
||||
public function setLibRunScript($libRunScript)
|
||||
{
|
||||
$this->options['lib_run_script'] = $libRunScript;
|
||||
}
|
||||
/**
|
||||
* @param string $name
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->options['name'] = $name;
|
||||
}
|
||||
/**
|
||||
* @param string $webMainRedirect
|
||||
*/
|
||||
public function setWebMainRedirect($webMainRedirect)
|
||||
{
|
||||
$this->options['web_main_redirect'] = ('true' == $webMainRedirect ? true : false);
|
||||
}
|
||||
/**
|
||||
* @param string $pluginClass
|
||||
*/
|
||||
public function setPluginClass($pluginClass)
|
||||
{
|
||||
$this->options['plugin_class'] = $pluginClass;
|
||||
}
|
||||
/**
|
||||
* @param string $version
|
||||
*/
|
||||
public function setVersion($version)
|
||||
{
|
||||
$this->options['version'] = $version;
|
||||
}
|
||||
/**
|
||||
* @param string $summary
|
||||
*/
|
||||
public function setSummary($summary)
|
||||
{
|
||||
$this->options['summary'] = $summary;
|
||||
}
|
||||
/**
|
||||
* @param string $inputDirectory
|
||||
*/
|
||||
public function setInputDirectory($inputDirectory)
|
||||
{
|
||||
$this->inputDirectory = $inputDirectory;
|
||||
}
|
||||
/**
|
||||
* @param string $outputFile
|
||||
*/
|
||||
public function setOutputFile($outputFile)
|
||||
{
|
||||
$this->outputFile = $outputFile;
|
||||
}
|
||||
/**
|
||||
* May be none, gzip or bzip2.
|
||||
*
|
||||
* @param string $compress
|
||||
*/
|
||||
public function setCompress($compress)
|
||||
{
|
||||
$this->modifiers['compress'] = $compress;
|
||||
}
|
||||
/**
|
||||
* True or false.
|
||||
*
|
||||
* @param srting $strip
|
||||
*/
|
||||
public function setStrip($strip)
|
||||
{
|
||||
$this->modifiers['strip'] = $strip;
|
||||
}
|
||||
/**
|
||||
* Path to PHK_Creator.phk file.
|
||||
*
|
||||
* @param srting $path
|
||||
*/
|
||||
public function setPhkCreatorPath($path)
|
||||
{
|
||||
$this->phkCreatorPath = $path;
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
|
||||
}
|
||||
/**
|
||||
* Main method...
|
||||
*/
|
||||
public function main()
|
||||
{
|
||||
/*
|
||||
* Check for empty first - speed ;)
|
||||
*/
|
||||
if (!is_file($this->phkCreatorPath)) {
|
||||
throw new BuildException('You must specify the "phkcreatorpath" attribute for PHK task.');
|
||||
}
|
||||
if (empty($this->inputDirectory)) {
|
||||
throw new BuildException('You must specify the "inputdirectory" attribute for PHK task.');
|
||||
}
|
||||
if (empty($this->outputFile)) {
|
||||
throw new BuildException('You must specify the "outputfile" attribute for PHK task.');
|
||||
}
|
||||
|
||||
require_once $this->phkCreatorPath;
|
||||
|
||||
$mountPoint = PHK_Mgr::mount($this->outputFile, PHK::F_CREATOR);
|
||||
$phkManager = PHK_Mgr::instance($mountPoint);
|
||||
|
||||
/*
|
||||
* Add files.
|
||||
*/
|
||||
$phkManager->ftree()->merge_file_tree('/', $this->inputDirectory, $this->modifiers);
|
||||
|
||||
/*
|
||||
* Add web_access to options, if present.
|
||||
*/
|
||||
if (!is_null($this->webAccess)) {
|
||||
$webAccessPaths = $this->webAccess->getPaths();
|
||||
if (!empty($webAccessPaths)) {
|
||||
$this->options['web_access'] = $webAccessPaths;
|
||||
}
|
||||
}
|
||||
|
||||
$phkManager->set_options($this->options);
|
||||
|
||||
/*
|
||||
* Intercept output (in PHP we can't intercept stream).
|
||||
*/
|
||||
ob_start();
|
||||
/*
|
||||
* Create file...
|
||||
*/
|
||||
$phkManager->dump();
|
||||
/*
|
||||
* Print with Phing log...
|
||||
*/
|
||||
$output = trim(ob_get_clean());
|
||||
$output = split("\n", $output);
|
||||
foreach ($output as $line) {
|
||||
/*
|
||||
* Delete all '--- *' lines. Bluh!
|
||||
*/
|
||||
/*
|
||||
* TODO Change preg_math to more faster alternative.
|
||||
*/
|
||||
if (preg_match('/^---/', $line)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->log($line);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set rights for generated file... Don't use umask() - see
|
||||
* notes in official documentation for this function.
|
||||
*/
|
||||
chmod($this->outputFile, 0644);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue