From 2b8b3e4a4003f1cf5b5b0803f8d3dc7deeb6247e Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Mon, 6 Apr 2026 01:33:09 +0200 Subject: [PATCH] Version extracted from info.rkt --- racket-webview-version.rkt | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/racket-webview-version.rkt b/racket-webview-version.rkt index 9874f6c..d12fad1 100644 --- a/racket-webview-version.rkt +++ b/racket-webview-version.rkt @@ -1,14 +1,43 @@ #lang racket/base +(require racket/file + racket/runtime-path + racket/string + ) + (provide webview-major webview-minor webview-patch webview-version-string ) -(define webview-major 0) -(define webview-minor 1) -(define webview-patch 3) +(define-runtime-path my-path ".") + +(define info-str (file->string (build-path my-path "info.rkt"))) +(define info-list (filter (λ (line) + (not (eq? (string-find line "version") #f)) + ) (string-split info-str "\n"))) + +(define info-version-re #px"[(]define\\s+version\\s+[\"]([^\"]+)[\"]") +(define info-version-str + (let ((m (regexp-match info-version-re (car info-list)))) + (when (eq? m #f) + (error "No version information in info.rkt")) + (cadr m))) + +(define version-re #px"([0-9]+)[.]([0-9]+)[.]([0-9]+)") +(define info-version + (let ((m (regexp-match version-re info-version-str))) + (when (eq? m #f) + (error "No matching version information pattern (x.y.z)")) + (list + (string->number (cadr m)) + (string->number (caddr m)) + (string->number (cadddr m))))) + +(define webview-major (car info-version)) +(define webview-minor (cadr info-version)) +(define webview-patch (caddr info-version)) (define (webview-version-string) (format "~a.~a.~a" webview-major webview-minor