2019-08-25 22:37:34 +00:00
#lang racket/base
( require ( prefix-in config: " config.rkt " ) )
( provide ( all-defined-out ) )
2020-05-27 17:13:13 +00:00
( define tab-full " \t " )
( define tab-half " " )
( define newline " \n " )
2020-04-11 20:43:14 +00:00
( define newline-double " \n \n " )
2020-02-09 20:58:38 +00:00
2020-05-27 17:27:48 +00:00
( define program-name config:program-name )
( define list-file config:list-file )
2020-05-27 17:30:06 +00:00
( define help-command ( car config:help-commands ) )
2020-05-27 17:27:48 +00:00
( define initialize-command ( car config:initialize-commands ) )
( define list-command ( car config:list-commands ) )
( define add-command ( car config:add-commands ) )
( define remove-command ( car config:remove-commands ) )
2019-08-25 22:37:34 +00:00
( define messages
2020-05-27 17:13:13 +00:00
( hash
2020-05-27 17:32:10 +00:00
' show-help
( string-append
" NAME " newline
tab-half ( format " ~a " program-name ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
" DESCRIPTION " newline
tab-half ( format " ~a is a todo-list program for the command line. ~a does not use any data formats, and cannot remove multiple items at once. " program-name program-name ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
" USAGE SYNTAX " newline
tab-half ( format " ~a [command] <args> " program-name ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
" COMMANDS AVAILABLE " newline
tab-half initialize-command newline
tab-full ( format " Creates a list file located at ~a " list-file ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half list-command newline
tab-full " Displays items from your list " newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half add-command " <args> " newline
tab-full " Adds an item to your list " newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half remove-command " <args> " newline
tab-full " Removes an item from your list " newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
" USAGE EXAMPLES " newline
tab-half initialize-command newline
tab-full ( format " ~a ~a " program-name initialize-command ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half list-command newline
tab-full ( format " ~a ~a " program-name list-command ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half add-command newline
tab-full ( format " ~a ~a this is an item without double quotation marks " program-name add-command ) newline
tab-full ( format " ~a ~a \" this is an item surrounded by double quotation marks \" " program-name add-command ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
tab-half remove-command newline
tab-full ( format " ~a ~a 2 " program-name remove-commands ) newline-double
2020-02-09 20:58:38 +00:00
2020-05-27 17:32:10 +00:00
" If you can't see the whole help message, then try running the following command: " newline
tab-half ( format " ~a ~a | less " program-name help-command ) newline )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' empty-list " > There is nothing in your list \n "
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' show-usage ( format " > For usage type ~a -h \n " program-name )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' creating ( format " > Creating a list at ~a... \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' creation-error ( format " > Error: Could not create a list file at ~a \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' file-already-exists ( format " > Error: A list file already exists at ~a \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' successfully-created ( format " > Your list file was successfully created at ~a \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' file-not-found ( format " > Error: Could not find ~a \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' item-not-found " > Error: Could not find that item \n "
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' init-y/n ( format " > A list file will be created at ~a \n > Are you sure you want to continue? [y/n] \n " list-file )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' try-init ( format " > Try typing the following to setup ~a: \n ~a ~a \n " program-name program-name initialize-command )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' terminating ( format " > Exited ~a \n " program-name )
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' choose-y/n " > Error: Please choose y or n \n "
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' not-in-list " > Error: Item does not exist \n "
2020-02-09 20:58:38 +00:00
2020-05-27 17:33:11 +00:00
' item-added " > Added \" ~a \" to your list \n "
2019-11-20 02:50:28 +00:00
2020-05-27 17:33:11 +00:00
' item-removed " > Removed \" ~a \" from your list \n " ) )
2019-08-25 22:37:34 +00:00
2020-05-27 17:27:48 +00:00
( define y/n
( hash ' yes ' ( " yes " " Yes " " y " " Y " )
' no ' ( " no " " No " " n " " N " ) ) )