58 lines
1.6 KiB
Racket
58 lines
1.6 KiB
Racket
#lang racket
|
|
|
|
(require "cache.rkt"
|
|
"dirstruct.rkt"
|
|
"scm.rkt"
|
|
"monitor-scm.rkt")
|
|
|
|
(plt-directory "/opt/plt")
|
|
(drdr-directory "/opt/svn/drdr")
|
|
(git-path "/usr/bin/git")
|
|
(Xvfb-path "/usr/bin/Xnest")
|
|
(fluxbox-path "/usr/bin/fluxbox")
|
|
(vncviewer-path "/usr/bin/vncviewer")
|
|
(current-make-install-timeout-seconds (* 90 60))
|
|
(current-make-timeout-seconds (* 90 60))
|
|
(current-subprocess-timeout-seconds 90)
|
|
(current-monitoring-interval-seconds 60)
|
|
(number-of-cpus 12)
|
|
|
|
(define (string->number* s)
|
|
(with-handlers ([exn:fail? (lambda (x) #f)])
|
|
(let ([v (string->number s)])
|
|
(and (number? v)
|
|
v))))
|
|
|
|
(define revisions #f)
|
|
|
|
(define (init-revisions!)
|
|
(set! revisions
|
|
(sort
|
|
(filter-map
|
|
(compose string->number* path->string)
|
|
(directory-list (plt-build-directory)))
|
|
<)))
|
|
|
|
(define (newest-revision)
|
|
(last revisions))
|
|
|
|
(define (second-to-last l)
|
|
(list-ref l (- (length l) 2)))
|
|
|
|
(define (second-newest-revision)
|
|
(with-handlers ([exn:fail? (lambda (x) #f)])
|
|
(second-to-last revisions)))
|
|
|
|
(define (newest-completed-revision)
|
|
(define n (newest-revision))
|
|
(if (read-cache* (build-path (revision-dir n) "analyzed"))
|
|
n
|
|
(second-newest-revision)))
|
|
|
|
(provide/contract
|
|
[revisions (or/c false/c (listof exact-nonnegative-integer?))]
|
|
[init-revisions! (-> void)]
|
|
[newest-revision (-> exact-nonnegative-integer?)]
|
|
[second-newest-revision (-> (or/c false/c exact-nonnegative-integer?))]
|
|
[newest-completed-revision (-> (or/c false/c exact-nonnegative-integer?))])
|