rodo/args.rkt

45 lines
1008 B
Racket

#lang racket/base
(require racket/vector
"config.rkt"
"init.rkt"
"util.rkt"
"messages.rkt")
(provide (all-defined-out))
(define (check-args args)
(let
([args-length (vector-length args)])
(cond
[(equal? args-length 0)
(d-hash-ref messages 'show-usage)]
[(and
(equal? args-length 1)
(equal? (vector-member list-command args) 0))
(show-list)]
[(and
(equal? args-length 2)
(equal? (vector-ref args 0) add-command))
(add-item args)]
[(and
(equal? args-length 2)
(equal? (vector-member remove-command args) 0))
(remove-item args)]
[(and
(equal? args-length 1)
(equal? (vector-member initialize-command args) 0))
(initialize)]
[(and
(equal? args-length 1)
(member (vector-ref args 0) help-command))
(d-hash-ref messages 'show-help)]
[else
(d-hash-ref messages 'show-usage)])))