System update (better update)

This commit is contained in:
markseu 2016-08-22 11:54:13 +02:00
parent c7d57a9825
commit c46f2f446b
2 changed files with 31 additions and 22 deletions

View file

@ -2281,11 +2281,6 @@ class YellowLookup
return $fileName;
}
function findFileNew($fileName, $fileNew, $pathBase, $nameDefault)
{
return $this->findFileFromConfig($fileName, $fileNew, $nameDefault); //TODO: Remove later
}
// Return file path from title
function findFileFromTitle($titlePrefix, $titleText, $fileName, $fileDefault, $fileExtension)
{
@ -2819,13 +2814,6 @@ class YellowToolbox
return $ok;
}
// Set file modification date, Unix time
function modifyFile($fileName, $modified)
{
clearstatcache(true, $fileName);
return @touch($fileName, $modified);
}
// Copy file
function copyFile($fileNameSource, $fileNameDest, $mkdir = false)
{
@ -2896,10 +2884,11 @@ class YellowToolbox
return $ok;
}
// Return file extension
function getFileExtension($fileName)
// Set file modification date, Unix time
function modifyFile($fileName, $modified)
{
return strtoloweru(($pos = strrposu($fileName, '.')) ? substru($fileName, $pos+1) : "");
clearstatcache(true, $fileName);
return @touch($fileName, $modified);
}
// Return file modification date, Unix time
@ -2908,6 +2897,12 @@ class YellowToolbox
return is_file($fileName) ? filemtime($fileName) : 0;
}
// Return file extension
function getFileExtension($fileName)
{
return strtoloweru(($pos = strrposu($fileName, '.')) ? substru($fileName, $pos+1) : "");
}
// Return lines from text string
function getTextLines($text)
{

View file

@ -5,7 +5,7 @@
// Update plugin
class YellowUpdate
{
const VERSION = "0.6.9";
const VERSION = "0.6.10";
var $yellow; //access to API
// Handle initialisation
@ -75,11 +75,15 @@ class YellowUpdate
// Update pending software
function updateCommandPending($args)
{
$statusCode = $this->update();
if($statusCode!=0)
$statusCode = 0;
if($this->isSoftwarePending())
{
if($statusCode!=200) echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n";
echo "Yellow has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n";
$statusCode = $this->update();
if($statusCode!=0)
{
if($statusCode!=200) echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n";
echo "Yellow has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n";
}
}
return $statusCode;
}
@ -265,7 +269,7 @@ class YellowUpdate
function processRequestPending($serverScheme, $serverName, $base, $location, $fileName)
{
$statusCode = 0;
if($this->isContentFile($fileName))
if($this->isContentFile($fileName) && $this->isSoftwarePending())
{
$statusCode = $this->update();
if($statusCode==200)
@ -282,7 +286,7 @@ class YellowUpdate
function processRequestInstallation($serverScheme, $serverName, $base, $location, $fileName)
{
$statusCode = 0;
if($this->isContentFile($fileName))
if($this->isContentFile($fileName) && $this->isInstallation())
{
$this->yellow->pages->pages["root/"] = array();
$this->yellow->page = new YellowPage($this->yellow);
@ -516,6 +520,16 @@ class YellowUpdate
return !is_null($data[$software]);
}
// Check if pending software exists
function isSoftwarePending()
{
$path = $this->yellow->config->get("pluginDir");
$foundPlugins = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false))>0;
$path = $this->yellow->config->get("themeDir");
$foundThemes = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false))>0;
return $foundPlugins || $foundThemes;
}
// Check if installation requested
function isInstallation()
{