Added check that libraries' NEWS version equals their pkg-def version.
This commit is contained in:
parent
135f15e295
commit
073be64796
8
Makefile
8
Makefile
|
@ -22,10 +22,14 @@ scsh-blurbs := $(shell find scsh \
|
||||||
-maxdepth 2 -mindepth 2 \
|
-maxdepth 2 -mindepth 2 \
|
||||||
-name BLURB)
|
-name BLURB)
|
||||||
|
|
||||||
targets := DETAILS COPYING pkg-def.scm
|
.PHONY: version-check
|
||||||
|
version-check :
|
||||||
|
build/version-check.scm
|
||||||
|
|
||||||
|
targets := DETAILS COPYING pkg-def.scm version-check
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all : $(targets)
|
all : $(targets) check-versions
|
||||||
|
|
||||||
DETAILS : $(s48-authors) $(s48-blurbs) $(scsh-authors) $(scsh-blurbs) \
|
DETAILS : $(s48-authors) $(s48-blurbs) $(scsh-authors) $(scsh-blurbs) \
|
||||||
build/details.scm build/dirs.scm build/header.scm
|
build/details.scm build/dirs.scm build/header.scm
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
#! /bin/sh
|
||||||
|
exec scsh -o filenames -s "$0" "$@"
|
||||||
|
!#
|
||||||
|
|
||||||
|
;;; This file is part of the Scheme Untergrund Library. For copyright
|
||||||
|
;;; information, see the file COPYING which comes with the
|
||||||
|
;;; distribution.
|
||||||
|
|
||||||
|
(load "build/common.scm")
|
||||||
|
(load "build/dirs.scm")
|
||||||
|
|
||||||
|
(define version-re
|
||||||
|
(rx "version"
|
||||||
|
(+ " ")
|
||||||
|
(submatch (+ numeric))
|
||||||
|
(* "." (submatch (+ numeric)))))
|
||||||
|
|
||||||
|
(define string->version
|
||||||
|
(lambda (v)
|
||||||
|
(let* ((match (regexp-search version-re v))
|
||||||
|
(major (string->number (match:substring match 1)))
|
||||||
|
(minor (match:substring match 2)))
|
||||||
|
(if minor
|
||||||
|
(list major (string->number minor))
|
||||||
|
(list major)))))
|
||||||
|
|
||||||
|
(define ok '#t)
|
||||||
|
|
||||||
|
(define check
|
||||||
|
(lambda (dir)
|
||||||
|
(call-with-input-file
|
||||||
|
(string-append dir "/pkg-def.scm")
|
||||||
|
(lambda (port)
|
||||||
|
(let try-again ()
|
||||||
|
(let ((form (read port)))
|
||||||
|
(cond ((eof-object? form)
|
||||||
|
(error "can't find package version"))
|
||||||
|
((and (pair? form)
|
||||||
|
(eq? (car form) 'define-package))
|
||||||
|
(let ((name (cadr form))
|
||||||
|
(version-pkg-def (caddr form))
|
||||||
|
(version-news
|
||||||
|
(call-with-input-file
|
||||||
|
(string-append dir "/NEWS")
|
||||||
|
(lambda (news-port)
|
||||||
|
(string->version (read-line news-port))))))
|
||||||
|
(if (not (equal? version-pkg-def version-news))
|
||||||
|
(let ()
|
||||||
|
(display "version mismatch in: ")
|
||||||
|
(display name)
|
||||||
|
(newline)
|
||||||
|
(set! ok '#f)))))
|
||||||
|
(else
|
||||||
|
(try-again)))))))))
|
||||||
|
|
||||||
|
(for-each check scsh-dirs)
|
||||||
|
(for-each check s48-dirs)
|
||||||
|
|
||||||
|
(exit (if ok 0 1))
|
Loading…
Reference in New Issue