<?php
/*
* $Id$
*
* 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>.
*/
include_once 'phing/Task.php';
/**
* @author miracle@rpz.name
* @version $Revision$
* @package phing.tasks.ext
*/
class ProjectLastRevisionTask extends Task {
protected $url;
private $propertyName = "site.lastrevision";
private $revisionFile = "revision.txt";
/**
* Sets the name of the property to use
*/
function setPropertyName($propertyName)
{
$this->propertyName = $propertyName;
}
/**
* Sets name of file w/ revision number
*/
function setRevisionFile($file) {
$this->revisionFile = (string) $file;
}
/**
* Sets url of project's root
*/
function setUrl($url) {
$this->url = (string) $url;
}
/**
* Returns the name of the property to use
*/
function getPropertyName()
{
return $this->propertyName;
}
function main() {
if ($tmp = file_get_contents($this->url . '/' . $this->revisionFile)) {
if (is_numeric($tmp)) {
$this->project->setProperty($this->getPropertyName(), $tmp);
return true;
}
}
throw new BuildException(sprintf("Unable retrive revision from '%s%s'",$this->url,$this->revisionFile));
}
}
?>