commit 8911feeac3d73ad514c217607f4eadcb6884d5d8
parent c91c9f0b8d62321ebd5f705288d5a3aff7060a23
Author: markseu <mark2011@mayberg.se>
Date: Tue, 14 Jun 2016 17:10:09 +0200
System update (software version)
Diffstat:
2 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/system/plugins/commandline.php b/system/plugins/commandline.php
@@ -5,7 +5,7 @@
// Command line plugin
class YellowCommandline
{
- const Version = "0.6.10";
+ const Version = "0.6.11";
var $yellow; //access to API
var $files; //number of files
var $errors; //number of errors
@@ -65,11 +65,11 @@ class YellowCommandline
$serverSoftware = $this->yellow->toolbox->getServerSoftware();
echo "Yellow ".YellowCore::Version.", PHP ".PHP_VERSION.", $serverSoftware\n";
list($dummy, $command) = $args;
- list($statusCode, $versionCurrent) = $this->getSoftwareVersion();
- list($statusCode, $versionLatest) = $this->getSoftwareVersion(false);
- foreach($versionCurrent as $key=>$value)
+ list($statusCode, $dataCurrent) = $this->getSoftwareVersion();
+ list($statusCode, $dataLatest) = $this->getSoftwareVersion(false);
+ foreach($dataCurrent as $key=>$value)
{
- if(strnatcasecmp($versionCurrent[$key], $versionLatest[$key]) >= 0)
+ if(strnatcasecmp($dataCurrent[$key], $dataLatest[$key]) >= 0)
{
echo "$key $value\n";
} else {
@@ -77,7 +77,7 @@ class YellowCommandline
++$updates;
}
}
- if($statusCode != 200) echo "ERROR checking updates: $versionLatest[error]\n";
+ if($statusCode != 200) echo "ERROR checking updates: $dataLatest[error]\n";
if($updates) echo "Yellow $command: $updates update".($updates==1 ? "":"s")." available\n";
return $statusCode;
}
@@ -437,25 +437,25 @@ class YellowCommandline
// Return software version
function getSoftwareVersion($current = true)
{
- $version = array();
+ $data = array();
if($current)
{
$statusCode = 200;
- foreach($this->yellow->plugins->getData() as $key=>$value) $version[$key] = $value;
- foreach($this->yellow->themes->getData() as $key=>$value) $version[$key] = $value;
+ foreach($this->yellow->plugins->getData() as $key=>$value) $data[$key] = $value;
+ foreach($this->yellow->themes->getData() as $key=>$value) $data[$key] = $value;
} else {
- list($statusCodePlugins, $versionPlugins) = $this->getSoftwareVersionFromUrl($this->yellow->config->get("commandlinePluginsUrl"));
- list($statusCodeThemes, $versionThemes) = $this->getSoftwareVersionFromUrl($this->yellow->config->get("commandlineThemesUrl"));
+ list($statusCodePlugins, $dataPlugins) = $this->getSoftwareVersionFromUrl($this->yellow->config->get("commandlinePluginsUrl"));
+ list($statusCodeThemes, $dataThemes) = $this->getSoftwareVersionFromUrl($this->yellow->config->get("commandlineThemesUrl"));
$statusCode = max($statusCodePlugins, $statusCodeThemes);
- $version = array_merge($versionPlugins, $versionThemes);
+ $data = array_merge($dataPlugins, $dataThemes);
}
- return array($statusCode, $version);
+ return array($statusCode, $data);
}
// Return software version from URL
function getSoftwareVersionFromUrl($url)
{
- $version = array();
+ $data = array();
$urlVersion = $url;
if(preg_match("#^https://github.com/(.+)$#", $url, $matches))
{
@@ -476,20 +476,22 @@ class YellowCommandline
if(defined("DEBUG") && DEBUG>=2) echo "YellowCommandline::getSoftwareVersion location:$urlVersion\n";
foreach($this->yellow->toolbox->getTextLines($rawData) as $line)
{
- if(preg_match("/^(\w+)\s*:\s*([0-9\.]+)/", $line, $matches))
+ preg_match("/^\s*(.*?)\s*:\s*(.*?)\s*$/", $line, $matches);
+ if(!empty($matches[1]) && !empty($matches[2]))
{
- $version[$matches[1]] = $matches[2];
- if(defined("DEBUG") && DEBUG>=3) echo "YellowCommandline::getSoftwareVersion $matches[1]:$matches[2]\n";
+ list($version, $url) = explode(',', $matches[2]);
+ $data[$matches[1]] = $version;
+ if(defined("DEBUG") && DEBUG>=3) echo "YellowCommandline::getSoftwareVersion $matches[1]:$version\n";
}
}
}
if($statusCode == 0) $statusCode = 444;
- $version["error"] = "$url - ".$this->yellow->toolbox->getHttpStatusFormatted($statusCode);
+ $data["error"] = "$url - ".$this->yellow->toolbox->getHttpStatusFormatted($statusCode);
} else {
$statusCode = 500;
- $version["error"] = "Plugin 'commandline' requires cURL library!";
+ $data["error"] = "Plugin 'commandline' requires cURL library!";
}
- return array($statusCode, $version);
+ return array($statusCode, $data);
}
// Return command help
diff --git a/system/plugins/core.php b/system/plugins/core.php
@@ -1595,19 +1595,19 @@ class YellowPlugins
}
foreach($this->plugins as $key=>$value)
{
- $this->plugins[$key]["obj"] = new $value["class"];
- if(defined("DEBUG") && DEBUG>=3) echo "YellowPlugins::load $value[class]:$value[version]<br/>\n";
+ $this->plugins[$key]["obj"] = new $value["plugin"];
+ if(defined("DEBUG") && DEBUG>=3) echo "YellowPlugins::load $value[plugin]:$value[version]<br/>\n";
if(method_exists($this->plugins[$key]["obj"], "onLoad")) $this->plugins[$key]["obj"]->onLoad($yellow);
}
}
// Register plugin
- function register($name, $class, $version)
+ function register($name, $plugin, $version)
{
if(!$this->isExisting($name))
{
$this->plugins[$name] = array();
- $this->plugins[$name]["class"] = $class;
+ $this->plugins[$name]["plugin"] = $plugin;
$this->plugins[$name]["version"] = $version;
}
}
@@ -1621,11 +1621,11 @@ class YellowPlugins
// Return plugin version
function getData()
{
- $version = array();
- $version["YellowCore"] = YellowCore::Version;
- foreach($this->plugins as $key=>$value) $version[$value["class"]] = $value["version"];
- uksort($version, strnatcasecmp);
- return $version;
+ $data = array();
+ $data["YellowCore"] = YellowCore::Version;
+ foreach($this->plugins as $key=>$value) $data[$value["plugin"]] = $value["version"];
+ uksort($data, strnatcasecmp);
+ return $data;
}
// Return plugin modification date, Unix time or HTTP format
@@ -1685,10 +1685,10 @@ class YellowThemes
// Return theme version
function getData()
{
- $version = array();
- foreach($this->themes as $key=>$value) $version[$value["theme"]] = $value["version"];
- uksort($version, strnatcasecmp);
- return $version;
+ $data = array();
+ foreach($this->themes as $key=>$value) $data[$value["theme"]] = $value["version"];
+ uksort($data, strnatcasecmp);
+ return $data;
}
// Return theme modification date, Unix time or HTTP format