From 4ef2eb9ad14f97d74f5bff885a11e7905b9e4ea6 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 29 Dec 2024 16:25:26 +0800 Subject: [PATCH] import: Add %cloudflare-warp-updater. * guix/import/rosenthal-updaters.scm: New file. --- guix/import/rosenthal-updaters.scm | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 guix/import/rosenthal-updaters.scm diff --git a/guix/import/rosenthal-updaters.scm b/guix/import/rosenthal-updaters.scm new file mode 100644 index 0000000..d7c52ef --- /dev/null +++ b/guix/import/rosenthal-updaters.scm @@ -0,0 +1,41 @@ +(define-module (guix import rosenthal-updaters) + #:use-module (ice-9 regex) + #:use-module (rnrs bytevectors) + #:use-module (srfi srfi-71) + #:use-module (web client) + + #:use-module (guix packages) + #:use-module (guix upstream) + #:export (%cloudflare-warp-updater)) + +(define* (cloudflare-warp-import pkg #:key (version #f)) + (let* ((source-uri (assq-ref (package-properties pkg) 'release-monitoring-url)) + (response content (http-get source-uri)) + (content (utf8->string content)) + (name (package-upstream-name pkg)) + (newest-version + (or version + (match:substring + (string-match "\nVersion: (.*)\nLicense" content) + 1))) + (url + (if version + (string-append "https://pkg.cloudflareclient.com/" + "pool/bookworm/main/c/cloudflare-warp/" + "cloudflare-warp_" version "_amd64.deb") + (string-append "https://pkg.cloudflareclient.com/" + (match:substring + (string-match "\nFilename: (.*)\nSize" content) + 1))))) + (upstream-source + (package name) + (version newest-version) + (urls (list url))))) + +(define %cloudflare-warp-updater + (upstream-updater + (name 'cloudflare-warp) + (description "Updater for Cloudflare WARP client") + (pred (lambda (package) + (string=? "cloudflare-warp" (package-upstream-name package)))) + (import cloudflare-warp-import)))