You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
4.5 KiB
165 lines
4.5 KiB
<?php
|
|
|
|
/**
|
|
*
|
|
* @package Duplicator
|
|
* @copyright (c) 2021, Snapcreek LLC
|
|
*/
|
|
|
|
namespace Duplicator\Libs\DupArchive\Utils;
|
|
|
|
use Duplicator\Libs\Snap\SnapUtil;
|
|
|
|
class DupArchiveUtil
|
|
{
|
|
public static $TRACE_ON = false; //rodo rework this
|
|
public static $logger = null;
|
|
|
|
/**
|
|
* get file list
|
|
*
|
|
* @param string $base_dir folder to check
|
|
* @param bool $recurse true for recursive scan
|
|
*
|
|
* @return string[]
|
|
*/
|
|
public static function expandFiles($base_dir, $recurse)
|
|
{
|
|
$files = array();
|
|
|
|
foreach (scandir($base_dir) as $file) {
|
|
if (($file == '.') || ($file == '..')) {
|
|
continue;
|
|
}
|
|
|
|
$file = "{$base_dir}/{$file}";
|
|
|
|
if (is_file($file)) {
|
|
$files [] = $file;
|
|
} elseif (is_dir($file) && $recurse) {
|
|
$files = array_merge($files, self::expandFiles($file, $recurse));
|
|
}
|
|
}
|
|
|
|
return $files;
|
|
}
|
|
|
|
/**
|
|
* get folder list
|
|
*
|
|
* @param string $base_dir folder to check
|
|
* @param bool $recurse true for recursive scan
|
|
*
|
|
* @return string[]
|
|
*/
|
|
public static function expandDirectories($base_dir, $recurse)
|
|
{
|
|
$directories = array();
|
|
|
|
foreach (scandir($base_dir) as $candidate) {
|
|
if (($candidate == '.') || ($candidate == '..')) {
|
|
continue;
|
|
}
|
|
$candidate = "{$base_dir}/{$candidate}";
|
|
|
|
if (is_dir($candidate)) {
|
|
$directories[] = $candidate;
|
|
if ($recurse) {
|
|
$directories = array_merge($directories, self::expandDirectories($candidate, $recurse));
|
|
}
|
|
}
|
|
}
|
|
|
|
return $directories;
|
|
}
|
|
|
|
/**
|
|
* Write $s in log
|
|
*
|
|
* @param string $s log string
|
|
* @param boolean $flush if true flosh name
|
|
* @param string $callingFunctionName function has called log
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function log($s, $flush = false, $callingFunctionName = null)
|
|
{
|
|
if (self::$logger != null) {
|
|
if ($callingFunctionName === null) {
|
|
$callingFunctionName = SnapUtil::getCallingFunctionName();
|
|
}
|
|
|
|
self::$logger->log($s, $flush, $callingFunctionName);
|
|
} else {
|
|
// throw new Exception('Logging object not initialized');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Write trace log
|
|
*
|
|
* @param string $s log string
|
|
* @param boolean $flush if true flosh name
|
|
* @param string $callingFunctionName function has called log
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function tlog($s, $flush = false, $callingFunctionName = null)
|
|
{
|
|
if (self::$TRACE_ON) {
|
|
if ($callingFunctionName === null) {
|
|
$callingFunctionName = SnapUtil::getCallingFunctionName();
|
|
}
|
|
|
|
self::log("####{$s}", $flush, $callingFunctionName);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Write object in trace log
|
|
*
|
|
* @param string $s log string
|
|
* @param mixed $o value to write in log
|
|
* @param boolean $flush if true flosh name
|
|
* @param string $callingFunctionName function has called log
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function tlogObject($s, $o, $flush = false, $callingFunctionName = null)
|
|
{
|
|
if (is_object($o)) {
|
|
$o = get_object_vars($o);
|
|
}
|
|
|
|
$ostring = print_r($o, true);
|
|
|
|
if ($callingFunctionName === null) {
|
|
$callingFunctionName = SnapUtil::getCallingFunctionName();
|
|
}
|
|
|
|
self::tlog($s, $flush, $callingFunctionName);
|
|
self::tlog($ostring, $flush, $callingFunctionName);
|
|
}
|
|
|
|
/**
|
|
* Write object in log
|
|
*
|
|
* @param string $s log string
|
|
* @param mixed $o value to write in log
|
|
* @param boolean $flush if true flosh name
|
|
* @param string $callingFunctionName function has called log
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function logObject($s, $o, $flush = false, $callingFunctionName = null)
|
|
{
|
|
$ostring = print_r($o, true);
|
|
|
|
if ($callingFunctionName === null) {
|
|
$callingFunctionName = SnapUtil::getCallingFunctionName();
|
|
}
|
|
|
|
self::log($s, $flush, $callingFunctionName);
|
|
self::log($ostring, $flush, $callingFunctionName);
|
|
}
|
|
}
|
|
|