summaryrefslogtreecommitdiff
path: root/buildscripts/phing/tasks/PradoVersionTask.php
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/phing/tasks/PradoVersionTask.php')
-rw-r--r--buildscripts/phing/tasks/PradoVersionTask.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/buildscripts/phing/tasks/PradoVersionTask.php b/buildscripts/phing/tasks/PradoVersionTask.php
new file mode 100644
index 00000000..911b68d4
--- /dev/null
+++ b/buildscripts/phing/tasks/PradoVersionTask.php
@@ -0,0 +1,56 @@
+<?php
+require_once 'phing/Task.php';
+include_once 'phing/tasks/system/PropertyTask.php';
+
+class PradoVersionTask extends PropertyTask
+{
+ /**
+ * Execute lint check against PhingFile or a FileSet
+ */
+ public function main()
+ {
+ $this->addProperty('prado.version',$this->getPradoVersion());
+ $this->addProperty('prado.revision',$this->getPradoRevision());
+ if(substr(PHP_OS, 0, 3) == 'WIN')
+ $this->addProperty('prado.winbuild','true');
+ else
+ $this->addProperty('prado.winbuild','false');
+ }
+
+ /**
+ * @return string Prado version
+ */
+ private function getPradoVersion()
+ {
+ $coreFile=dirname(__FILE__).'/../../../framework/PradoBase.php';
+ if(is_file($coreFile))
+ {
+ $contents=file_get_contents($coreFile);
+ $matches=array();
+ if(preg_match('/public static function getVersion.*?return \'(.*?)\'/ms',$contents,$matches)>0)
+ return $matches[1];
+ }
+ return 'unknown';
+ }
+
+ /**
+ * @return string Prado SVN revision
+ */
+ private function getPradoRevision()
+ {
+ $svnPath=dirname(__FILE__).'/../../../.svn';
+ if(is_file($svnPath.'/all-wcprops'))
+ $propFile=$svnPath.'/all-wcprops';
+ else if(is_file($svnPath.'/dir-wcprops'))
+ $propFile=$svnPath.'/dir-wcprops';
+ else
+ return 'unknown';
+ $contents=file_get_contents($propFile);
+ if(preg_match('/\\/repos\\/prado\\/\\!svn\\/ver\\/(\d+)\\//ms',$contents,$matches)>0)
+ return $matches[1];
+ else
+ return 'unknown';
+ }
+}
+
+?> \ No newline at end of file