19 lines
678 B
Scheme
19 lines
678 B
Scheme
#lang scheme/base
|
|
|
|
;; This module provides the string that should replace xxxxxxx's in
|
|
;; file names. The version number is combined into a single integer,
|
|
;; and converted to a string in base 36.
|
|
|
|
(provide filename-version-part)
|
|
(require version/utils)
|
|
|
|
(define filename-version-part
|
|
(let* ([ver (version->integer (version))]
|
|
[digits "0123456789abcdefghijklmnopqrstuvwxyz"]
|
|
[radix (string-length digits)])
|
|
(let loop ([n ver] [r '()])
|
|
(cond [(> n 0) (loop (quotient n radix)
|
|
(cons (string-ref digits (modulo n radix)) r))]
|
|
[(< (length r) 7) (loop n (cons #\_ r))]
|
|
[else (list->string r)]))))
|