-
Notifications
You must be signed in to change notification settings - Fork 0
/
parse-cli.scm
120 lines (116 loc) · 4.59 KB
/
parse-cli.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
(define expected-args '(cruise-control dict-file pin-len start end pause))
(define (print-gun)
(for-each
(lambda (x)
(print x))
`(" .__. "
" | |------------------------------------------."
" | | CCc T |"
" | | A C T T T |"
" | | C C AA C TTTTT $$$$$$$ |"
" | | C AAAA C C T U U $ |"
" | | C C A A C C T U U $$$$$$$ "
" | | T U U $"
" | | $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "
" .____."
" xuu$``$$$uuu."
" . $``$ $$$`$$$"
"dP*$ $ $$$ $$$"
"?k $ $ $$$ $$$"
" $ $ $ $$$ $$$"
" \":$ $ $$$ $$$"
" N$ $ $$$ $$$"
" $$ $ $$$ $$$"
" $ $ $$$ $$$"
" $ $ $$$ $$$"
" $ $ $$$ $$$"
" $ $ $$$ $$$"
" $ $ $$$ $$$"
" $$#$ $$$ $$$"
" $$'$ $$$ $$$"
" $$`R $$$ $$$"
" $$$& $$$ $$$"
" $#*$ $$$ $$$"
" $ $ $$$ @$$"
" $ $ $$$ $$$"
" $ $ $$$ $$$"
" $ $ $B$ $$&."
" $ $ $D$ $$$$$muL."
" $ $ $Q$ $$$$$ `\"**mu.."
" $ $ $R$ $$$$$ k `$$*t"
" $ @ $$$ $$$$$ k $$!4"
" $ x$uu@B8u$NB@$uuuu6...$$X?"
" $ $(`RF`$`````R$ $$5`\"\"\"#R"
" $ $\" M$ $ $$ $$$ ?"
" $ $ ?$ $ T$ $$$ $"
" $ $F H$ $ M$ $$K $ .."
" $ $L $$ $ $$ $$R. \"d$$$$Ns."
" $ $~ $$ $ N$ $$X .\" \"%2h"
" $ 4k f $ *$ $$& R \"iN\""
" $ $$ %uz! tuuR$$: Buu ?`:\""
" $ $F $??$8B | '*Ned*$~L$\""
" $ $k $'@$$$ |$.suu+!' !$\""
" $ ?N $'$$@$ $*` d:\""
" $ dL..........M.$&$$ 5 d\"P"
" ..$.^\"*I$RR*$C\"\"??77*? \"nu...n*L*"
"'$C\"R ``\"\"!$*@#\"\"` .uor bu8BUU+!`"
"'*@m@. *d\" *$Rouxxd\"```$"
" R*@mu. \"#$R *$ !"
" *%x. \"*L $ %."
" \"N `%. ...u.d!` ..ue$$$o.."
" @ \". $*\"\"\"\" .u$$$$$$$$$$$$beu..."
" 8 .mL % :R` x$$$$$$$$$$$$$$$$$$$$$$$$$$WmeemeeWc"
" |$e!\" \"s:k 4 d$N\"`\"#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" $$ \"N @ $?$ F$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" $@ ^%Uu.. R#8buu$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" ```\"\"*u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" #$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" \"5$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" `*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" ^#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" \"*$$$$$$$$$$$$$$$$$$$$$$$$$$>"
" `\"*$$$$$$$$$$$$$$$$$$$$$$$>"
" ^!$$$$$$$$$$$$$$$$$$$$>"
" `\"#+$$$$$$$$$$$$$$>"
" \"\"**$$$$$$$$>"
" ```\"\"")))
(define (usage)
(print-gun)
(print (string-append
"PHREAKSHOT v1.0 ©2018 a.se8seven (_a_t) gm...com\n"
"illegal use not permitted, not responsible for any damage under any\n"
"circumstances.\n\n\n\n"
"brute [--cruise-control on] [--dict-file dict.txt] "
"[--pin-len 4] [--start 9999] [--end 0000] [--pause 3.8]"))
(exit))
(define (parse-cli args)
(when (not (null? args))
(let ((arg (car args)))
(if (= (remainder argc 2) 0)
(let ((param-name
(substring arg 2 (string-length arg)))
(found #f))
(for-each (lambda (x)
(when (equal? (symbol->string x) param-name)
(set! found #t)))
expected-args)
(when (not found)
(usage))
(set! current-arg (string->symbol param-name)))
(cond ((eq? current-arg 'cruise-control)
(set! cruise-control (if (equal? arg "off")
#f
#t)))
((eq? current-arg 'dict-file)
(set! dict-file-name arg))
((eq? current-arg 'pin-len)
(set! pin-len (string->number arg)))
((eq? current-arg 'start)
(set! range-start (string->number arg)))
((eq? current-arg 'end)
(set! range-end (string->number arg)))
((eq? current-arg 'pause)
(set! seconds-between-attempts (string->number arg)))))
(set! argc (add1 argc))
(parse-cli (cdr args)))))
(parse-cli (command-line-arguments))