From e24242776325ed3a5ddabf6e10b7c8de317ef9d9 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Thu, 16 Jul 2026 17:07:49 +0200 Subject: [PATCH] c64 support --- .../services/software_updater/c64_service.rb | 19 +++++++++++++++++++ apps/api/app/services/update_service.rb | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 apps/api/app/services/software_updater/c64_service.rb diff --git a/apps/api/app/services/software_updater/c64_service.rb b/apps/api/app/services/software_updater/c64_service.rb new file mode 100644 index 0000000..2e9c92a --- /dev/null +++ b/apps/api/app/services/software_updater/c64_service.rb @@ -0,0 +1,19 @@ +module SoftwareUpdater + class C64Service < BaseService + def update(name, version) + versioned = "#{name}-#{version}" + + metadata = parse_json_metadata(full_path("#{versioned}.metadata.json")) + site_url = metadata.delete(:site) + + software = update_or_create_software(metadata.merge(platform: "c64")) + upsert_external_link(software.id, "Source Code", site_url) if site_url.present? + + create_release_if_not_exists( + software_id: software.id, + version: version, + cartridge_path: full_path("#{versioned}.prg") + ) + end + end +end diff --git a/apps/api/app/services/update_service.rb b/apps/api/app/services/update_service.rb index c6f6b11..36f3059 100644 --- a/apps/api/app/services/update_service.rb +++ b/apps/api/app/services/update_service.rb @@ -2,7 +2,8 @@ class UpdateService PLATFORM_SERVICES = { "tic80" => "SoftwareUpdater::Tic80Service", "ebitengine" => "SoftwareUpdater::EbitengineService", - "love" => "SoftwareUpdater::LoveService" + "love" => "SoftwareUpdater::LoveService", + "c64" => "SoftwareUpdater::C64Service" }.freeze def update(input)