-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathprobe-directory-index
executable file
·53 lines (47 loc) · 1.31 KB
/
probe-directory-index
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
#!/usr/bin/awk -f
# usage: aws s3 ls s3://download.draios.com/stable/sysdig-probe-binaries/ | $0 > index.html
BEGIN {
print "<!DOCTYPE html>";
print "<html>";
print " <head>";
print " <meta charset=\"utf-8\">";
print " <title>Directory index</title>";
print " <style type=\"text/css\">";
print "body { font-family: monospace; line-height: 1.5 }";
print "h3 { display: inline; }";
print "ul { display: none; }";
print "input { visibility: hidden; }";
print "input:not(:checked):after { visibility: visible; content: \"▼\" }";
print "input:checked + ul { display: block; }";
print " </style>";
print " </head>";
print " <body>";
}
$4 ~ /\.k?o$/ {
PROBE = $4
PROBE_GROUP = PROBE
PROBE_GROUP = gensub(/(.*-probe(-bpf)?-[^-]+).*/, "\\1", 1, PROBE);
if(PROBE_GROUPS[PROBE_GROUP])
{
PROBE_GROUPS[PROBE_GROUP] = PROBE_GROUPS[PROBE_GROUP] "," PROBE;
}
else
{
PROBE_GROUPS[PROBE_GROUP] = PROBE;
}
}
END {
n = asorti(PROBE_GROUPS, PG_INDEXES)
for(pgi = 1; pgi <= n; ++pgi)
{
PG = PG_INDEXES[pgi]
print "<div><h3><label for=\"" PG "\">" PG "</label></h3><input id=\"" PG "\" type=\"checkbox\"><ul>"
split(PROBE_GROUPS[PG], PROBES, ",");
for(i = 1; i <= length(PROBES); ++i)
{
print "<li><a href=\"" PROBES[i] "\">" PROBES[i] "</a></li>";
}
print "</ul></div>"
}
print " </body>\n</html>"
}