feuforeve.v4/daily-island-updater.rkt

31 lines
939 B
Racket
Raw Permalink Normal View History

#lang racket/base
; Daily island updater
; This scripts generates islands
; It should be called once a day to create the daily island for the following day
(module+ main
(require
racket/date
racket/file
"src/generators/island.rkt"
"src/generators/island/renderer.rkt")
; Reseed the generator
(define seed (current-seconds))
(random-seed seed)
; Generate an island (200×200)
(define island (island-generate 200))
; Create the output directory if is does not exist yet
; Directory name
(define tomorrow
(parameterize ((date-display-format 'iso-8601))
(date->string
(seconds->date (+ (* 24 60 60) (* 0.001 (current-inexact-milliseconds))))
)))
(define directory-base "static/islands")
(define directory-name (string-append directory-base "/" tomorrow))
; Create the directory
(make-directory* directory-name)
; Save the island
(island-render island directory-name))