mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-08 22:44:55 +02:00
oum install checks
This commit is contained in:
parent
d5193615f9
commit
0ff07f55dd
@ -1246,6 +1246,34 @@ class Client
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function getDirectorySize($directory)
|
||||||
|
{
|
||||||
|
if (is_string($directory) === false || is_dir($directory) === false) {
|
||||||
|
throw new \InvalidArgumentException('Invalid directory path');
|
||||||
|
}
|
||||||
|
|
||||||
|
$size = 0;
|
||||||
|
|
||||||
|
if ($handle = opendir($directory)) {
|
||||||
|
while (false !== ($file = readdir($handle))) {
|
||||||
|
if ($file != '.' && $file != '..') {
|
||||||
|
$path = $directory.DIRECTORY_SEPARATOR.$file;
|
||||||
|
if (is_dir($path) === true) {
|
||||||
|
// Recursive call for subdirectories.
|
||||||
|
$size += $this->getDirectorySize($path);
|
||||||
|
} else {
|
||||||
|
$size += filesize($path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update files.
|
* Update files.
|
||||||
*
|
*
|
||||||
@ -1263,7 +1291,8 @@ class Client
|
|||||||
string $from,
|
string $from,
|
||||||
string $to,
|
string $to,
|
||||||
bool $test=false,
|
bool $test=false,
|
||||||
bool $classic=false
|
bool $classic=false,
|
||||||
|
bool $called_recursively=false
|
||||||
) :void {
|
) :void {
|
||||||
if (is_dir($from) !== true || is_readable($from) !== true) {
|
if (is_dir($from) !== true || is_readable($from) !== true) {
|
||||||
throw new \Exception('Cannot access patch files '.$from);
|
throw new \Exception('Cannot access patch files '.$from);
|
||||||
@ -1284,6 +1313,18 @@ class Client
|
|||||||
throw new \Exception('Files are not readable');
|
throw new \Exception('Files are not readable');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($test === true && $called_recursively === false) {
|
||||||
|
// Get size of folder and its subfolders corresponding to "from" path containing those files
|
||||||
|
// that will be updated in product.
|
||||||
|
// Do once.
|
||||||
|
$source_size = $this->getDirectorySize($from);
|
||||||
|
$source_size = 999999999999;
|
||||||
|
// Check available disk space before writing files.
|
||||||
|
if (disk_free_space($to) < $source_size) {
|
||||||
|
throw new \Exception('Not enough disk space to write the files');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$created_directories = [];
|
$created_directories = [];
|
||||||
|
|
||||||
while (($pf = readdir($pd)) !== false) {
|
while (($pf = readdir($pd)) !== false) {
|
||||||
@ -1308,11 +1349,13 @@ class Client
|
|||||||
$created_directories[] = $dest;
|
$created_directories[] = $dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->updateFiles($version, $pf.'/', $to, $test, $classic);
|
$this->updateFiles($version, $pf.'/', $to, $test, $classic, true);
|
||||||
} else {
|
} else {
|
||||||
// It's a file.
|
// It's a file.
|
||||||
if ($test === true) {
|
if ($test === true) {
|
||||||
if (is_writable($target_folder) !== true) {
|
if (is_writable($target_folder) !== true
|
||||||
|
|| (file_exists($dest) === true && is_writable($dest) !== true)
|
||||||
|
) {
|
||||||
throw new \Exception($dest.' is not writable');
|
throw new \Exception($dest.' is not writable');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user