From 5eceb71e2cd74501d63999614cd1e9a59eb20eeb Mon Sep 17 00:00:00 2001 From: m455 Date: Mon, 2 Apr 2018 13:51:08 -0400 Subject: [PATCH] too many things added --- rodo.rkt | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/rodo.rkt b/rodo.rkt index 3b2bed9..c164d2e 100755 --- a/rodo.rkt +++ b/rodo.rkt @@ -1,6 +1,6 @@ #! /usr/bin/env racket #lang racket/base -(require json) +(require json racket/vector) ;; set the name of the program here (define program-name "rodo") @@ -12,6 +12,14 @@ (define (displayln-hash-ref hash-list key) (displayln (hash-ref hash-list key))) +;; (define (add-to-list) +;; (let ([args (vector-ref (current-command-line-arguments) 1)]) +;; (string-append "> Added " args " to list"))) + +;;(define (remove-from-list) +;; (let ([args (vector-ref (current-command-line-arguments) 1)]) +;; (string-append "> Removed " args " from list"))) + ;; define all messages for quick access (define messages (hash @@ -19,13 +27,10 @@ 'file-not-found (string-append "> " program-name " has not been setup in your home directory\n> Would you like to set it up now? [y/n]") 'file-exists (string-append "> ." program-name " file exists") 'creating-file (string-append "> Creating ." program-name " file in your home directory...") - - ;; temporary thing - 'item-added (string-append "> Added ") - ;; todo change `item` to command-line argument for add and remove - ;; 'item-added (string-append "> Added " (vector-ref (current-command-line-arguments) 1)) - ;; 'item-removed "> Item removed" ;; todo change `item` to command-line argument + 'item-added "> Added item to list" + 'item-removed "> Added item to list" + 'initializing (string-append "> Initializing " program-name " in your home directory") 'terminating (string-append "> Exiting " program-name "...") 'choose-y/n "> Error: Please choose y or n")) @@ -45,7 +50,7 @@ (close-output-port opened-file)))) ;; talk with user if something goes wrong/right -(define (prompt-user prompt-message) +(define (prompt-initialize prompt-message) (displayln-hash-ref messages prompt-message) (display "> ") (let ([user-input (read-line)]) @@ -57,27 +62,24 @@ (displayln-hash-ref messages 'terminating)] [else (displayln-hash-ref messages 'choose-y/n) - (prompt-user 'file-not-found)]))) - -(define (add-to-list args) - ;; (let ([item (vector-ref args 1)]) - (displayln-hash-ref messages 'item-added)) + (prompt-initialize 'file-not-found)]))) (define (check-args args) - (vector-length (args))) + (let ([args-length (vector-length args)]) + (cond + [(or (equal? args-length 0) (> args-length 2)) + (displayln-hash-ref messages 'incorrect-usage)] + [(and (equal? args-length 2) (equal? (vector-member "add" args) 0)) + (displayln-hash-ref messages 'item-added)] + [(and (equal? args-length 1) (equal? (vector-member "init" args) 0)) + (todo-list-exist?)]))) (define (todo-list-exist?) (if (file-exists? (expand-user-path (string-append program-path program-name))) (displayln-hash-ref messages 'file-exists) - (prompt-user 'file-not-found))) + (prompt-initialize 'file-not-found))) -;; todo get command-line args -#|(define (todo-list-exist?) - (if (file-exists? (expand-user-path (string-append program-path program-name))) - (begin - (displayln-hash-ref messages 'file-exists) - (add-to-list (current-command-line-arguments))) - (prompt-user 'file-not-found))) -|# +(define (main) +(check-args (current-command-line-arguments))) -(todo-list-exist?) +(main)