rodo/init.rkt

46 lines
1.4 KiB
Racket

#lang racket/base
(require (prefix-in file: racket/file)
(prefix-in config: "config.rkt")
(prefix-in util: "util.rkt")
(prefix-in messages: "messages.rkt"))
(provide (all-defined-out))
(define (initialize-file)
(file:display-to-file
"--Do not edit this file--\n"
config:path
#:mode 'text
#:exists 'replace))
(define (init-prompt hash-list key)
(util:display-hash-ref hash-list key)
(display "> ")
(let
([user-input (read-line)])
(cond
[(member user-input (hash-ref messages:y/n 'yes))
(util:display-hash-ref messages:messages 'creating-folder)
(util:display-hash-ref messages:messages 'creating-file)
(util:create-folder)
(util:create-file)
(initialize-file)
(if (and
(util:check-for-folder)
(util:check-for-file))
(util:display-hash-ref messages:messages 'successfully-created)
(util:display-hash-ref messages:messages 'creation-error))]
[(member user-input (hash-ref messages:y/n 'no))
(util:display-hash-ref messages:messages 'terminating)]
[else
(init-prompt messages:messages 'choose-y/n)])))
(define (initialize)
(if (util:check-for-file)
(util:display-hash-ref messages:messages 'file-already-exists)
(begin
(init-prompt messages:messages 'init-y/n))))