diff --git a/src/SPC/store/Downloader.php b/src/SPC/store/Downloader.php index 4c3bbf61..ba0cd124 100644 --- a/src/SPC/store/Downloader.php +++ b/src/SPC/store/Downloader.php @@ -650,6 +650,12 @@ class Downloader return true; } } + if (!$force && $download_as === SPC_DOWNLOAD_PACKAGE && $lock_item !== null) { + if (file_exists($path = LockFile::getLockFullPath($lock_item))) { + logger()->notice("Source [{$name}] already downloaded: {$path}"); + return true; + } + } return false; } } diff --git a/src/SPC/store/LockFile.php b/src/SPC/store/LockFile.php index 132d3764..999f91b4 100644 --- a/src/SPC/store/LockFile.php +++ b/src/SPC/store/LockFile.php @@ -69,17 +69,16 @@ class LockFile { self::init(); - $data = self::$lock_file_content; - if ($lock_content === null && isset($data[$lock_name])) { - self::removeLockFileIfExists($data[$lock_name]); - unset($data[$lock_name]); + if ($lock_content === null && isset(self::$lock_file_content[$lock_name])) { + self::removeLockFileIfExists(self::$lock_file_content[$lock_name]); + unset(self::$lock_file_content[$lock_name]); } else { - $data[$lock_name] = $lock_content; + self::$lock_file_content[$lock_name] = $lock_content; } // Write the updated lock data back to the file FileSystem::createDir(dirname(self::LOCK_FILE)); - file_put_contents(self::LOCK_FILE, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); + file_put_contents(self::LOCK_FILE, json_encode(self::$lock_file_content, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } /**