-
Notifications
You must be signed in to change notification settings - Fork 24
/
cli
90 lines (72 loc) · 1.57 KB
/
cli
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
#!/usr/bin/env bash
set +o nounset
set +o noclobber
: ${debug_flags:="-search"} ${debug_flag:=0} ${trace_flags:="-search -backtrace"} ${trace_flag:=0}
while (( $# > 0 ))
do
token="$1"
case "$token" in
--help)
extension_args=("core" "help" "$@")
break
;;
-v|--version)
extension_args=("core" "version" "$@")
break
;;
--trace)
trace_flags+=" all"
;;
--trace=*)
trace_flags+=" ${token##--trace=}"
;;
--debug)
debug_flags+=" all"
debug_flag=1
;;
--debug=*)
debug_flags+=" ${token##--debug=}"
debug_flag=1
;;
--module=*)
preload_modules+=( ${token##--module=} )
;;
--call=*)
call_action="${token##--call=}"
[[ "$call_action" =~ \/ ]] && preload_modules+=( ${call_action%/*} ) || true
call_action="${call_action##*/}"
;;
--)
shift #end of processing
extension_args=("$@")
break
;;
-*)
error "Unknown flag '${token}'"
;;
*)
if [[ -f $token ]]
then
bdsm_script=$1
else
extension_args=("$@")
break
fi
;;
esac
shift
done
if (( $# == 0 )) && [[ -z "$extension_args" ]]
then
extension_args=()
fi
PS4="# \${BASH_SOURCE##\${bdsm_path}\/extensions\/} \${FUNCNAME[0]:+\${FUNCNAME[0]}()} \${LINENO} $ "
export PS4
if [[ " ${trace_flags} " =~ " all " ]]
then
trace_flag=1
set -x
fi
debug_flags="${debug_flags## }"
trace_flags="${trace_flags## }"
export debug_flag debug_flags trace_flag trace_flags extension_args bdsm_script