57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. /var/common.sh
|
|
|
|
LIST=""
|
|
vendors=""
|
|
_SOURCE=$DB/*
|
|
|
|
get_param search
|
|
|
|
[ "$search" != "Unknown" ] && {
|
|
_SOURCE="$(grep -i -m1 -R -l "$search" $DB | sed -E -n 's/^(.*)\/(dmesg|state|vendor|date)$/\1/p' | sort | uniq)"
|
|
[ -z "$_SOURCE" ] && LIST="<h2>Not found</h2>" || LIST="<h2>Search result for '$search':</h2>"
|
|
} || search=""
|
|
|
|
# Assoc array challange accepted!
|
|
for _d in $_SOURCE
|
|
do
|
|
_vendor="$(<$_d/vendor)"
|
|
_model="$(<$_d/model)"
|
|
_state="$(<$_d/state)"
|
|
_date="$(<$_d/date)"
|
|
_notconf="$(<$_d/notconf)"
|
|
_md5="$(<$_d/md5)"
|
|
_comment="$(<$_d/comment)"
|
|
_uname="$(<$_d/uname)"
|
|
_dmesg_link="/list/$_vendor-$_model[$_state]-$_md5.txt"
|
|
_device_html="
|
|
<li>
|
|
<a class='dmesg-link' href='$_dmesg_link'>
|
|
<span class='$_state' title='$_state'>[$_state]</span>
|
|
$_model</a>
|
|
<span class='notconf'>Not configured: </span>
|
|
<span class='notconf-val'>$_notconf</span>
|
|
<span class='date'>$_date</span><br>
|
|
<span class='comment'>$_uname</span>
|
|
<br><span class='comment'>Comment: $_comment</span>
|
|
</li>"
|
|
vendors="${vendors}\n${_vendor}"
|
|
eval "vendor_$_vendor=\"\$vendor_$_vendor $_device_html\""
|
|
done
|
|
|
|
vendors="$(echo "$vendors" | sort | uniq)"
|
|
for _v in $vendors
|
|
do
|
|
LIST="$LIST\n<div><h3>$_v</h3>\n<ul>$(eval "echo \$vendor_$_v")</ul></div>"
|
|
done
|
|
|
|
|
|
# Challange complete
|
|
echo -en "Status: 200 OK\r\n"
|
|
echo -en "Content-type: text/html\r\n\r\n"
|
|
echo "$(<../tpl/_header.html)"
|
|
echo "<form method='GET'><input type='text' name='search' value='$search' placeholder='search'></form>"
|
|
echo "$LIST"
|
|
echo "$(<../tpl/_footer.html)"
|