Skip to content

Commit 54d5082

Browse files
committed
add -m option to generate markdown
1 parent 0ea72bd commit 54d5082

File tree

1 file changed

+61
-13
lines changed

1 file changed

+61
-13
lines changed

packages/lime-report/files/bin/lime-report.sh

Lines changed: 61 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,60 @@
11
#!/bin/sh
22

3+
FORMAT="${FORMAT:-text}"
4+
35
paste_file() {
4-
echo -ne "\n### FILE $1"
5-
[ -e "$1" ] && (
6-
echo -e "\n" &&
7-
cat "$1" | grep -v key | grep -v pass
8-
) || echo -e " NOT FOUND\n"
6+
if [ "$FORMAT" = "md" ]; then
7+
echo -e "\n### FILE $1\n"
8+
[ -e "$1" ] && (
9+
echo '```'
10+
cat "$1" | grep -v key | grep -v pass
11+
echo '```'
12+
) || echo "_NOT FOUND_"
13+
else
14+
echo -ne "\n### FILE $1"
15+
[ -e "$1" ] && (
16+
echo -e "\n" &&
17+
cat "$1" | grep -v key | grep -v pass
18+
) || echo -e " NOT FOUND\n"
19+
fi
920
}
1021

1122
paste_cmd() {
12-
echo -e "\n### CMD $@\n"
13-
eval $@ 2>&1 | grep -v key | grep -v pass
23+
if [ "$FORMAT" = "md" ]; then
24+
echo -e "\n### CMD $@\n"
25+
echo '```'
26+
eval $@ 2>&1 | grep -v key | grep -v pass
27+
echo '```'
28+
else
29+
echo -e "\n### CMD $@\n"
30+
eval $@ 2>&1 | grep -v key | grep -v pass
31+
fi
1432
}
1533

1634
header() {
17-
paste_cmd echo hostname $HOSTNAME
18-
paste_cmd date \'+%Y-%m-%d %H:%M:%S\'
19-
paste_cmd uptime
35+
if [ "$FORMAT" = "md" ]; then
36+
echo "# LibreMesh Report"
37+
echo ""
38+
echo "**Hostname:** $(cat /proc/sys/kernel/hostname)"
39+
echo "**Date:** $(date '+%Y-%m-%d %H:%M:%S')"
40+
echo "**Uptime:** $(uptime)"
41+
echo ""
42+
echo "## Table of Contents"
43+
echo "- [Device Info](#device-info)"
44+
echo "- [Configuration](#configuration)"
45+
echo "- [Status](#status)"
46+
echo "- [Shared State](#shared-state)"
47+
echo ""
48+
echo "---"
49+
else
50+
paste_cmd echo hostname $HOSTNAME
51+
paste_cmd date \'+%Y-%m-%d %H:%M:%S\'
52+
paste_cmd uptime
53+
fi
2054
}
2155

2256
generate_deviceinfo() {
57+
[ "$FORMAT" = "md" ] && echo -e "\n## Device Info\n"
2358
paste_file /etc/board.json
2459
paste_file /proc/cpuinfo
2560
paste_file /etc/lime_release
@@ -28,6 +63,7 @@ generate_deviceinfo() {
2863
}
2964

3065
generate_config() {
66+
[ "$FORMAT" = "md" ] && echo -e "\n## Configuration\n"
3167
paste_file /etc/config/lime-node
3268
paste_file /etc/config/lime-community
3369
paste_file /etc/config/lime-defaults
@@ -37,6 +73,7 @@ generate_config() {
3773
}
3874

3975
generate_status() {
76+
[ "$FORMAT" = "md" ] && echo -e "\n## Status\n"
4077
paste_cmd dmesg
4178
paste_cmd batctl if
4279
paste_cmd batctl o
@@ -72,12 +109,21 @@ generate_status() {
72109
}
73110

74111
generate_shared_state() {
112+
[ "$FORMAT" = "md" ] && echo -e "\n## Shared State\n"
113+
75114
echo -e "\n### shared-state-async registered datatypes\n"
76115
for section in $(uci show shared-state 2>/dev/null | grep '=dataType' | cut -d'.' -f2 | cut -d'=' -f1); do
77116
datatype=$(uci -q get shared-state.$section.name)
78117
if [ -n "$datatype" ]; then
79-
echo -e "\n### CMD shared-state-async dump $datatype\n"
80-
shared-state-async dump "$datatype" 2>&1
118+
if [ "$FORMAT" = "md" ]; then
119+
echo -e "\n#### $datatype\n"
120+
echo '```json'
121+
shared-state-async dump "$datatype" 2>&1
122+
echo '```'
123+
else
124+
echo -e "\n### CMD shared-state-async dump $datatype\n"
125+
shared-state-async dump "$datatype" 2>&1
126+
fi
81127
fi
82128
done
83129

@@ -112,10 +158,12 @@ generate_all() {
112158
echo "-d print only device info" && \
113159
echo "-c print only main configuration" && \
114160
echo "-s print only current status" && \
115-
echo "-ss print only shared-state-async data (publish all and dump all datatypes)"
161+
echo "-ss print only shared-state-async data (publish all and dump all datatypes)" && \
162+
echo "-m output in markdown format with table of contents"
116163
}
117164
[ "$1" = "" ] && header && generate_all
118165
[ "$1" = "-d" ] && header && generate_deviceinfo
119166
[ "$1" = "-c" ] && header && generate_config
120167
[ "$1" = "-s" ] && header && generate_status
121168
[ "$1" = "-ss" ] && header && generate_shared_state
169+
[ "$1" = "-m" ] && FORMAT=md && header && generate_all

0 commit comments

Comments
 (0)