You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pollen/pollen/private/version.rkt

23 lines
996 B
Racket

#lang racket/base
(require racket/match racket/string setup/getinfo racket/file racket/format racket/runtime-path)
(provide pollen:version pollen:version-strict)
(define-runtime-path ts-file "ts.rktd")
(define-runtime-path pollen-dir "../../../pollen")
(define version-string ((get-info/full pollen-dir) 'version))
(match-define (list major-version minor-version)
(map string->number (string-split version-string ".")))
(define pollen:version-strict (format "~a.~a" major-version minor-version))
(define (generate-full-version)
(define pollen-birthday 1375340400) ; 8/1/2013, 12:00:00 AM GMT-7:00 DST
(define seconds-per-year (* 60 60 24))
(define build-time (- (file->value ts-file) pollen-birthday))
(define-values (build-days seconds-remainder) (quotient/remainder build-time seconds-per-year))
(define minutes-remainder (quotient seconds-remainder 60))
(format "~a.~a.~a" pollen:version-strict build-days minutes-remainder))
(define pollen:version (generate-full-version))