;;; run64 --- SRFI-64 test runner ;;; Copyright © 2025 Arun Isaac ;;; ;;; This file is part of run64. ;;; ;;; run64 is free software: you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; run64 is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with run64. If not, see . (define-module (run64-release) #:use-module ((gnu packages base) #:select (gnu-make)) #:use-module ((gnu packages compression) #:select (lzip)) #:use-module ((gnu packages version-control) #:select (git-minimal)) #:use-module (guix gexp)) (define run64-git-repo (local-file "../.git" "run64-git-repo" #:recursive? #t)) (define run64-release-gexp (with-imported-modules '((guix build utils)) #~(begin (use-modules (guix build utils) (ice-9 match) (ice-9 popen) (srfi srfi-26) (rnrs io ports)) (define (call-with-input-pipe command proc) "Call @var{proc} with input pipe to @var{command}. @var{command} is a list of program arguments." (match command ((prog args ...) (let ((port #f)) (dynamic-wind (lambda () (set! port (apply open-pipe* OPEN_READ prog args))) (cut proc port) (cut close-pipe port)))))) (define (git-version) (call-with-input-pipe (list "git" "tag" "--sort=-taggerdate" "--list" "v*") (compose (cut substring <> (string-length "v")) get-line))) (set-path-environment-variable "PATH" '("bin") '(#$git-minimal #$gnu-make #$lzip)) (invoke "git" "clone" (string-append "file://" #$run64-git-repo) (getcwd)) (let ((version (git-version))) (invoke "make" "dist" (string-append "version=" version)) (copy-file (string-append "run64-" version ".tar.lz") #$output))))) (define run64-release (computed-file "run64.tar.lz" run64-release-gexp)) run64-release