|
|
#lang debug racket
|
|
|
(require "main.rkt")
|
|
|
|
|
|
(module+ raco
|
|
|
;; pull text out of stdin, if any
|
|
|
;; todo: make this cooperate with `read` for confirmation of replace
|
|
|
(define text (string-join (for/list ([t (in-port read)])
|
|
|
(format "~a" t)) " "))
|
|
|
(define command-name (with-handlers ([exn:fail? (λ (exn) #f)])
|
|
|
(vector-ref (current-command-line-arguments) 0)))
|
|
|
(dispatch command-name text))
|
|
|
|
|
|
(module+ main
|
|
|
(println "this is fontproof command"))
|
|
|
|
|
|
(define (dispatch command-name text)
|
|
|
(when (positive? (vector-length (current-command-line-arguments)))
|
|
|
(define output-file-path #false)
|
|
|
(define page-size #false)
|
|
|
(define font-sizes #false)
|
|
|
(define line-heights #false)
|
|
|
(define doc #false)
|
|
|
(define replace #false)
|
|
|
(define families
|
|
|
(command-line
|
|
|
#:program "fontproof"
|
|
|
#:argv (current-command-line-arguments)
|
|
|
#:once-each
|
|
|
[("-p" "--page") page-size-arg
|
|
|
"page size"
|
|
|
(set! page-size page-size-arg)]
|
|
|
[("-r" "--replace") "replace existing"
|
|
|
(set! replace #true)]
|
|
|
[("-d" "--doc") doc-arg
|
|
|
"sample text"
|
|
|
(set! doc doc-arg)]
|
|
|
[("-o" "--output") output-file-path-arg
|
|
|
"output file path"
|
|
|
(set! output-file-path output-file-path-arg)]
|
|
|
[("-s" "--size") font-sizes-arg
|
|
|
"font sizes"
|
|
|
(set! font-sizes font-sizes-arg)]
|
|
|
[("-l" "--leading") line-heights-arg
|
|
|
"font size"
|
|
|
(set! line-heights line-heights-arg)]
|
|
|
#:args families
|
|
|
families))
|
|
|
(cond
|
|
|
[(null? families) (displayln "no family given")]
|
|
|
[else (for ([family (in-list families)])
|
|
|
(make-proof family (if (non-empty-string? text) text doc)
|
|
|
#:page-size page-size
|
|
|
#:font-sizes font-sizes
|
|
|
#:line-heights line-heights
|
|
|
#:output-file-path output-file-path
|
|
|
#:replace replace))])))
|
|
|
|
|
|
|