/** * Backup files * * @param string $source upgrade package directory * @param string $dest working directory * @param array $result resulting list of backed up files * @param string $package package to make backup for * @param Logger $log * @return boolean true if directory copied correctly, false - otherwise */ function fn_uc_backup_files($source, $dest, &$result, $package, $log) { // Simple copy for a file if (is_file($source)) { $log->write('Backing up: ' . $source, __FILE__, __LINE__); return fn_uc_backup_file($source, $dest, $result, $package); } // Loop through the folder if (is_dir($source)) { $dir = dir($source); while (false !== ($entry = $dir->read())) { // Skip pointers if ($entry == '.' || $entry == '..') { continue; } $log->write('Backing up: ' . $entry, __FILE__, __LINE__); // Deep backup directories if ($dest !== $source . '/' . $entry) { if (fn_uc_backup_files(rtrim($source, '/') . '/' . $entry, $dest . '/' . $entry, $result, $package, $log) == false) { return false; } } } // Clean up $dir->close(); return true; } else { fn_set_notification('E', __('error'), __('text_uc_incorrect_upgrade_path')); return false; } }
/** * Backup files * * @param string $source upgrade package directory * @param string $dest working directory * @param array $result resulting list of backed up files * @param string $package package to make backup for * @return boolean true if directory copied correctly, false - otherwise */ function fn_uc_backup_files($source, $dest, &$result, $package) { // Simple copy for a file if (is_file($source)) { return fn_uc_backup_file($source, $dest, $result, $package); } // Loop through the folder if (is_dir($source)) { $dir = dir($source); while (false !== ($entry = $dir->read())) { // Skip pointers if ($entry == '.' || $entry == '..') { continue; } // Deep backup directories if ($dest !== $source . '/' . $entry) { if (fn_uc_backup_files(rtrim($source, '/') . '/' . $entry, $dest . '/' . $entry, $result, $package) == false) { return false; } } } // Clean up $dir->close(); return true; } else { return false; } }