import: Add %cloudflare-warp-updater.

* guix/import/rosenthal-updaters.scm: New file.
This commit is contained in:
Hilton Chain 2024-12-29 16:25:26 +08:00
parent a59d496c74
commit 4ef2eb9ad1
No known key found for this signature in database
GPG Key ID: ACC66D09CA528292

View File

@ -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)))