46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Racket
		
	
	
	
	
	
			
		
		
	
	
			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))))
 |