diff options
Diffstat (limited to 'buildscripts/phing/classes/phing/tasks/ext/apigen/ApiGenTask.php')
-rw-r--r-- | buildscripts/phing/classes/phing/tasks/ext/apigen/ApiGenTask.php | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/buildscripts/phing/classes/phing/tasks/ext/apigen/ApiGenTask.php b/buildscripts/phing/classes/phing/tasks/ext/apigen/ApiGenTask.php deleted file mode 100644 index d8438b3e..00000000 --- a/buildscripts/phing/classes/phing/tasks/ext/apigen/ApiGenTask.php +++ /dev/null @@ -1,439 +0,0 @@ -<?php -/* - * 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'; - -/** - * ApiGen task (http://apigen.org). - * - * @package phing.tasks.ext.apigen - * @author Martin Srank <martin@smasty.net> - * @author Jaroslav HanslĂk <kukulich@kukulich.cz> - * @since 2.4.10 - */ -class ApiGenTask extends Task -{ - /** - * Default ApiGen executable name. - * - * @var string - */ - private $executable = 'apigen'; - - /** - * Default options for ApiGen. - * - * @var array - */ - private $options = array( - 'progressbar' => false, - 'colors' => false, - 'update-check' => false - ); - - /** - * Sets the ApiGen executable name. - * - * @param string $executable - */ - public function setExecutable($executable) - { - $this->executable = (string) $executable; - } - - /** - * Sets the config file name. - * - * @param string $config - */ - public function setConfig($config) - { - $this->options['config'] = (string) $config; - } - - /** - * Sets source files or directories. - * - * @param string $source - */ - public function setSource($source) - { - $this->options['source'] = explode(',', $source); - } - - /** - * Sets the destination directory. - * - * @param string $destination - */ - public function setDestination($destination) - { - $this->options['destination'] = (string) $destination; - } - - /** - * Sets list of allowed file extensions. - * - * @param string $extensions - */ - public function setExtensions($extensions) - { - $this->options['extensions'] = explode(',', $extensions); - } - - /** - * Sets masks (case sensitive) to exclude files or directories from processing. - * - * @param string $exclude - */ - public function setExclude($exclude) - { - $this->options['exclude'] = explode(',', $exclude); - } - - /** - * Sets masks to exclude elements from documentation generating. - * - * @param string $skipDocPath - */ - public function setSkipDocPath($skipDocPath) - { - $this->options['skip-doc-path'] = explode(',', $skipDocPath); - } - - /** - * Sets a name prefix to exclude elements from documentation generating. - * - * @param string $skipDocPrefix - */ - public function setSkipDocPrefix($skipDocPrefix) - { - $this->options['skip-doc-prefix'] = explode(',', $skipDocPrefix); - } - - /** - * Sets the character set of source files. - * - * @param string $charset - */ - public function setCharset($charset) - { - $this->options['charset'] = explode(',', $charset); - } - - /** - * Sets the main project name prefix. - * - * @param string $main - */ - public function setMain($main) - { - $this->options['main'] = (string) $main; - } - - /** - * Sets the title of generated documentation. - * - * @param string $title - */ - public function setTitle($title) - { - $this->options['title'] = (string) $title; - } - - /** - * Sets the documentation base URL. - * - * @param string $baseUrl - */ - public function setBaseUrl($baseUrl) - { - $this->options['base-url'] = (string) $baseUrl; - } - - /** - * Sets the Google Custom Search ID. - * - * @param string $googleCseId - */ - public function setGoogleCseId($googleCseId) - { - $this->options['google-cse-id'] = (string) $googleCseId; - } - - /** - * Sets the Google Custom Search label. - * - * @param string $googleCseLabel - */ - public function setGoogleCseLabel($googleCseLabel) - { - $this->options['google-cse-label'] = (string) $googleCseLabel; - } - - /** - * Sets the Google Analytics tracking code. - * - * @param string $googleAnalytics - */ - public function setGoogleAnalytics($googleAnalytics) - { - $this->options['google-analytics'] = (string) $googleAnalytics; - } - - /** - * Sets the template config file name. - * - * @param string $templateConfig - */ - public function setTemplateConfig($templateConfig) - { - $this->options['template-config'] = (string) $templateConfig; - } - - /** - * Sets a list of HTML tags allowed in the documentation. - * - * @param string $allowedHtml - */ - public function setAllowedHtml($allowedHtml) - { - $this->options['allowed-html'] = (string) $allowedHtml; - } - - /** - * Sets how elements should be grouped in the menu. - * - * @param string $groups - */ - public function setGroups($groups) - { - $this->options['groups'] = (string) $groups; - } - - /** - * Sets element types for search input autocomplete. - * - * @param string $autocomplete - */ - public function setAutocomplete($autocomplete) - { - $this->options['autocomplete'] = (string) $autocomplete; - } - - /** - * Sets the element access levels. - * - * Documentation only for methods and properties with the given access level will be generated. - * - * @param string $accessLevels - */ - public function setAccessLevels($accessLevels) - { - $this->options['access-levels'] = (string) $accessLevels; - } - - /** - * Sets if documentation for elements marked as internal and internal documentation parts should be generated. - * - * @param boolean $internal - */ - public function setInternal($internal) - { - $this->options['internal'] = (bool) $internal; - } - - /** - * Sets if documentation for PHP internal classes should be generated. - * - * @param boolean $php - */ - public function setPhp($php) - { - $this->options['php'] = (bool) $php; - } - - /** - * Sets if tree view of classes, interfaces, traits and exceptions should be generated. - * - * @param boolean $tree - */ - public function setTree($tree) - { - $this->options['tree'] = (bool) $tree; - } - - /** - * Sets if documentation for deprecated elements should be generated. - * - * @param boolean $deprecated - */ - public function setDeprecated($deprecated) - { - $this->options['deprecated'] = (bool) $deprecated; - } - - /** - * Sets if documentation of tasks should be generated. - * - * @param boolean $todo - */ - public function setTodo($todo) - { - $this->options['todo'] = (bool) $todo; - } - - /** - * Sets if highlighted source code files should be generated. - * - * @param boolean $sourceCode - */ - public function setSourceCode($sourceCode) - { - $this->options['source-code'] = (bool) $sourceCode; - } - - /** - * Sets if a link to download documentation as a ZIP archive should be generated. - * - * @param boolean $download - */ - public function setDownload($download) - { - $this->options['download'] = (bool) $download; - } - - /** - * Sets a file name for checkstyle report of poorly documented elements. - * - * @param string $report - */ - public function setReport($report) - { - $this->options['report'] = (string) $report; - } - - /** - * Sets if the destination directory should be wiped out first. - * - * @param boolean $wipeout - */ - public function setWipeout($wipeout) - { - $this->options['wipeout'] = (bool) $wipeout; - } - - /** - * Enables/disables scaning and generating messages. - * - * @param boolean $quiet - */ - public function setQuiet($quiet) - { - $this->options['quiet'] = (bool) $quiet; - } - - /** - * Enables/disables the check for ApiGen updates. - * - * @param boolean $updateCheck - */ - public function setUpdateCheck($updateCheck) - { - $this->options['update-check'] = (bool) $updateCheck; - } - - /** - * Enables/disables the debug mode. - * - * @param boolean $debug - */ - public function setDebug($debug) - { - $this->options['debug'] = (bool) $debug; - } - - /** - * Runs ApiGen. - * - * @throws BuildException If something is wrong. - * @see Task::main() - */ - public function main() - { - if ('apigen' !== $this->executable && !is_file($this->executable)) { - throw new BuildException(sprintf('Executable %s not found', $this->executable), $this->getLocation()); - } - - if (!empty($this->options['config'])) { - // Config check - if (!is_file($this->options['config'])) { - throw new BuildException(sprintf('Config file %s doesn\'t exist', $this->options['config']), $this->getLocation()); - } - } else { - // Source check - if (empty($this->options['source'])) { - throw new BuildException('Source is not set', $this->getLocation()); - } - // Destination check - if (empty($this->options['destination'])) { - throw new BuildException('Destination is not set', $this->getLocation()); - } - } - - // Source check - if (!empty($this->options['source'])) { - foreach ($this->options['source'] as $source) { - if (!file_exists($source)) { - throw new BuildException(sprintf('Source %s doesn\'t exist', $source), $this->getLocation()); - } - } - } - - // Execute ApiGen - exec(escapeshellcmd($this->executable) . ' ' . $this->constructArguments(), $output, $return); - - $logType = 0 === $return ? Project::MSG_INFO : Project::MSG_ERR; - foreach ($output as $line) { - $this->log($line, $logType); - } - } - - /** - * Generates command line arguments for the ApiGen executable. - * - * @return string - */ - protected function constructArguments() - { - $args = array(); - foreach ($this->options as $option => $value) { - if (is_bool($value)) { - $args[] = '--' . $option . '=' . ($value ? 'yes' : 'no'); - } elseif (is_array($value)) { - foreach ($value as $v) { - $args[] = '--' . $option . '=' . escapeshellarg($v); - } - } else { - $args[] = '--' . $option . '=' . escapeshellarg($value); - } - } - return implode(' ', $args); - } -} |