racket/collects/setup/variant.ss
Matthew Flatt 91add0453f 369.4
svn: r5327
2007-01-12 07:09:56 +00:00

36 lines
1.2 KiB
Scheme

(module variant mzscheme
(require (prefix config: (lib "config.ss" "config"))
(lib "dirs.ss" "setup"))
(provide variant-suffix)
(define plain-mz-is-cgc?
(delay (let ([dir (find-console-bin-dir)]
[exe (case (system-type)
[(windows) "MzScheme.exe"]
[else "mzscheme"])])
(let ([f (build-path dir exe)])
(and (file-exists? f)
(with-input-from-file f
(lambda ()
(let ([m (regexp-match #rx#"bINARy tYPe:..(.)" (current-input-port))])
(and m
(equal? (cadr m) #"c"))))))))))
(define variant-suffix
(lambda (variant cased?)
(case variant
[(3m script-3m)
((if cased? values string-downcase)
(or (force config:3m-suffix)
(if (force plain-mz-is-cgc?)
"3m"
"")))]
[(cgc script-cgc)
((if cased? values string-downcase)
(or (force config:cgc-suffix)
(if (force plain-mz-is-cgc?)
""
"CGC")))]))))