-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathshow.es
117 lines (99 loc) · 1.74 KB
/
show.es
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
#!/usr/local/bin/es
options = $options show
# a little something from OpenVMS:
# show is an internal that displays various variables and parameters.
# it can be easily extended by making a function named show-fnname
fn addshowfn n {
showfns = $showfns $n
}
fn show-options {
echo $options
}
showfns = options
fn show-debugging {
echo $#debugging
}
addshowfn debugging
fn show-version {
echo $version
}
addshowfn version
fn show-esversion {
echo <={ $&version }
}
addshowfn esversion
fn show-primitives {
echo <={ $&primitives }
}
addshowfn primitives
fn show-internals {
echo <={ $&internals }
}
addshowfn internals
fn show-libraries {
echo 'system: '^$^corelib
echo 'user: '^$^libraries
}
addshowfn libraries
fn show-home {
echo $home
}
addshowfn home
fn show-path {
echo $path
}
addshowfn path
fn show-flags {
echo 'usebg='^$usebg
echo 'enable-import='^$enable-import
}
addshowfn flags
fn show-vars {
let (private = false) {
for(i = $*) {
if {~ $i -p} {private = true}
}
if {$private} { vars -v -p } { vars -v }
}
}
addshowfn vars
fn show-fns {
let (private = false) {
for(i = $*) {
if {~ $i -p} {private = true}
}
if {$private} { vars -f -p } { vars -f }
}
}
addshowfn fns
fn show-settors {
let (private = false) {
for(i = $*) {
if {~ $i -p} {private = true}
}
if {$private} { vars -s -p } { vars -s }
}
}
addshowfn settors
fn show-help {
echo 'Commands available: '
echo -n ' '
echo $showfns
}
addshowfn help
fn show cmd rest {
let(showcmd = '') {
if {! ~ $#cmd 1} {
show help
} {
showcmd = 'show-'^$cmd
fnshowcmd = 'fn-'^$showcmd
dprint 'showcmd = '^$showcmd
$showcmd $rest
}
}
}
for(i = $showfns) {
noexport = $noexport 'fn-show-'^$i
}
noexport = $noexport fn-addshowfn fn-show showfns