manifest.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. declare(strict_types=1);
  3. require_once __DIR__ . "/includes/update-server.php";
  4. header("Cache-Control: no-store");
  5. $baseDir = __DIR__;
  6. $manifestFile = $baseDir . "/manifest.json";
  7. try {
  8. $manifest = updateServerReadManifest($manifestFile);
  9. $release = updateServerLatestRelease($manifest);
  10. $packagePath = updateServerPackagePath($baseDir, $release["package"]);
  11. $size = $release["size"] > 0 ? $release["size"] : (filesize($packagePath) ?: 0);
  12. updateServerJsonResponse(200, [
  13. "latest" => $release["version"],
  14. "version" => $release["version"],
  15. "package_url" => updateServerPackageUrl($release["version"]),
  16. "sha256" => $release["sha256"],
  17. "size" => $size,
  18. "published_at" => $release["published_at"],
  19. ]);
  20. } catch (Throwable $exception) {
  21. $message = $exception->getMessage();
  22. $status = in_array($message, [
  23. "No valid latest release is configured.",
  24. "Latest release entry is missing.",
  25. "Release package is missing.",
  26. ], true) ? 404 : 500;
  27. updateServerJsonResponse($status, ["error" => $message]);
  28. }