134 lines
4.2 KiB
Racket
134 lines
4.2 KiB
Racket
#lang racket
|
|
(require "path-utils.rkt")
|
|
|
|
(define number-of-cpus
|
|
(make-parameter 1))
|
|
|
|
(define current-subprocess-timeout-seconds
|
|
(make-parameter (* 60 10)))
|
|
|
|
(define plt-directory
|
|
(make-parameter (build-path (current-directory))))
|
|
|
|
(define (plt-build-directory)
|
|
(build-path (plt-directory) "builds"))
|
|
|
|
(define (plt-future-build-directory)
|
|
(build-path (plt-directory) "future-builds"))
|
|
|
|
(define (plt-data-directory)
|
|
(build-path (plt-directory) "data"))
|
|
|
|
(define drdr-directory
|
|
(make-parameter (build-path (current-directory) "drdr")))
|
|
|
|
(define make-path
|
|
(make-parameter "/usr/bin/make"))
|
|
(define tar-path
|
|
(make-parameter "/bin/tar"))
|
|
|
|
(define Xvfb-path
|
|
(make-parameter "/usr/bin/Xvfb"))
|
|
|
|
(define fluxbox-path
|
|
(make-parameter "/usr/bin/fluxbox"))
|
|
|
|
(define vncviewer-path
|
|
(make-parameter "/usr/bin/vncviewer"))
|
|
|
|
(define (plt-repository)
|
|
(build-path (plt-directory) "repo"))
|
|
|
|
(define current-make-timeout-seconds
|
|
(make-parameter (* 60 30)))
|
|
|
|
(define current-make-install-timeout-seconds
|
|
(make-parameter (* 60 30)))
|
|
|
|
(define current-rev
|
|
(make-parameter #f))
|
|
|
|
(define previous-rev
|
|
(make-parameter #f))
|
|
|
|
(define (revision-dir rev)
|
|
(build-path (plt-build-directory) (number->string rev)))
|
|
|
|
(define (revision-log-dir rev)
|
|
(build-path (revision-dir rev) "logs"))
|
|
|
|
(define (revision-analyze-dir rev)
|
|
(build-path (revision-dir rev) "analyze"))
|
|
|
|
(define (revision-trunk-dir rev)
|
|
(build-path (revision-dir rev) "trunk"))
|
|
(define (revision-trunk.tgz rev)
|
|
(build-path (revision-dir rev) "trunk.tgz"))
|
|
(define (revision-trunk.tar.7z rev)
|
|
(build-path (revision-dir rev) "trunk.tar.7z"))
|
|
|
|
(define (revision-commit-msg rev)
|
|
(build-path (revision-dir rev) "commit-msg"))
|
|
|
|
(define (path->revision pth)
|
|
(define builds (explode-path (plt-build-directory)))
|
|
(define builds-len (length builds))
|
|
(define pths (explode-path pth))
|
|
(string->number (path->string* (list-ref pths builds-len))))
|
|
|
|
(define (revision-archive rev)
|
|
(build-path (revision-dir rev) "archive.db"))
|
|
|
|
(define (future-record-path n)
|
|
(build-path (plt-future-build-directory) (number->string n)))
|
|
|
|
(define (path-timing-log p)
|
|
(path-add-suffix (build-path (plt-data-directory) p) #".timing"))
|
|
|
|
(define (path-timing-png p)
|
|
(path-add-suffix (path-timing-log p) #".png"))
|
|
(define (path-timing-html p)
|
|
(path-add-suffix (path-timing-log p) #".html"))
|
|
(define (path-timing-png-prefix p)
|
|
(path-timing-log p))
|
|
|
|
(define build? (make-parameter #t))
|
|
|
|
(define (on-unix?)
|
|
(symbol=? 'unix (system-type 'os)))
|
|
|
|
(provide/contract
|
|
[current-subprocess-timeout-seconds (parameter/c exact-nonnegative-integer?)]
|
|
[number-of-cpus (parameter/c exact-nonnegative-integer?)]
|
|
[current-rev (parameter/c (or/c false/c exact-nonnegative-integer?))]
|
|
[previous-rev (parameter/c (or/c false/c exact-nonnegative-integer?))]
|
|
[plt-directory (parameter/c path-string?)]
|
|
[plt-build-directory (-> path?)]
|
|
[plt-data-directory (-> path?)]
|
|
[plt-future-build-directory (-> path?)]
|
|
[drdr-directory (parameter/c path-string?)]
|
|
[tar-path (parameter/c (or/c false/c string?))]
|
|
[make-path (parameter/c (or/c false/c string?))]
|
|
[Xvfb-path (parameter/c (or/c false/c string?))]
|
|
[vncviewer-path (parameter/c (or/c false/c string?))]
|
|
[fluxbox-path (parameter/c (or/c false/c string?))]
|
|
[build? (parameter/c boolean?)]
|
|
[on-unix? (-> boolean?)]
|
|
[plt-repository (-> path?)]
|
|
[path-timing-log (path-string? . -> . path?)]
|
|
[path-timing-png (path-string? . -> . path?)]
|
|
[path-timing-png-prefix (path-string? . -> . path?)]
|
|
[path-timing-html (path-string? . -> . path?)]
|
|
[future-record-path (exact-nonnegative-integer? . -> . path?)]
|
|
[current-make-timeout-seconds (parameter/c exact-nonnegative-integer?)]
|
|
[current-make-install-timeout-seconds (parameter/c exact-nonnegative-integer?)]
|
|
[revision-dir (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-commit-msg (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-log-dir (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-analyze-dir (exact-nonnegative-integer? . -> . path-string?)]
|
|
[revision-trunk-dir (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-trunk.tgz (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-trunk.tar.7z (exact-nonnegative-integer? . -> . path?)]
|
|
[revision-archive (exact-nonnegative-integer? . -> . path?)]
|
|
[path->revision (path-string? . -> . exact-nonnegative-integer?)])
|