Add scripts to export board status data to wiki

It's a start...

Change-Id: Ibdb0b64ab0349df58bcad5ce553bf0dbec636925
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/4483
Tested-by: build bot (Jenkins)
This commit is contained in:
Patrick Georgi 2013-12-05 18:11:33 +01:00
parent 08c4150ec4
commit 274c6c2177
5 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,34 @@
#!/bin/sh
# usage: $0 [weekly|monthly|quarterly] < filenames
# sorts files of the form VENDOR/BOARD/COMMIT/DATE/revision.txt
# into buckets of the given granularity
weekly() {
date --date="$1" +%YW%V
}
monthly() {
date --date="$1" +%Y-%m
}
quarterly() {
date --date="$1" "+%Y %m" | awk '{ q=int(($2-1)/3+1); print $1 "Q" q}'
}
# TODO: restrict $1 to allowed values
curr=""
sort -r -k4 -t/ | while read file; do
timestamp=`printf $file | cut -d/ -f4`
new=`$1 $timestamp`
if [ "$new" != "$curr" ]; then
if [ "$curr" != "" ]; then
printf "\n"
fi
printf "$new:"
curr=$new
fi
printf "$file "
done
printf "\n"

View File

@ -0,0 +1,9 @@
= coreboot status by mainboard =
This list contains reports of successful coreboot execution, ordered by date. It's shows which boards can actually run with current coreboot versions.
By sorting it by date, we encourage developers and users to keep ports current and well-tested.
Status data comes from the [http://review.coreboot.org/gitweb?p=board-status.git board status repository], which also contains the parser.
The coreboot tree [http://review.coreboot.org/gitweb?p=coreboot.git;a=tree;f=util/board_status;hb=HEAD contains a tool] to generate and push suitable data.
An account on review.coreboot.org is required for sending data.

View File

@ -0,0 +1,82 @@
#!/bin/bash
# $1: file containing text
. ~/.wikiaccount
WIKIAPI="http://www.coreboot.org/api.php"
TITLE="Supported_Motherboards"
cookie_jar="/tmp/wikicookiejar"
#Will store file in wikifile
#################login
#Login part 1
CR=$(curl -sS \
--location \
--retry 2 \
--retry-delay 5\
--cookie $cookie_jar \
--cookie-jar $cookie_jar \
--user-agent "Curl Shell Script" \
--keepalive-time 60 \
--header "Accept-Language: en-us" \
--header "Connection: keep-alive" \
--compressed \
--data-urlencode "lgname=${USERNAME}" \
--data-urlencode "lgpassword=${USERPASS}" \
--request "POST" "${WIKIAPI}?action=login&format=txt")
CR2=($CR)
if [ "${CR2[9]}" = "[token]" ]; then
TOKEN=${CR2[11]}
else
exit
fi
#Login part 2
CR=$(curl -sS \
--location \
--cookie $cookie_jar \
--cookie-jar $cookie_jar \
--user-agent "Curl Shell Script" \
--keepalive-time 60 \
--header "Accept-Language: en-us" \
--header "Connection: keep-alive" \
--compressed \
--data-urlencode "lgname=${USERNAME}" \
--data-urlencode "lgpassword=${USERPASS}" \
--data-urlencode "lgtoken=${TOKEN}" \
--request "POST" "${WIKIAPI}?action=login&format=txt")
###############
#Get edit token
CR=$(curl -sS \
--location \
--cookie $cookie_jar \
--cookie-jar $cookie_jar \
--user-agent "Curl Shell Script" \
--keepalive-time 60 \
--header "Accept-Language: en-us" \
--header "Connection: keep-alive" \
--compressed \
--request "POST" "${WIKIAPI}?action=tokens&format=txt")
CR2=($CR)
EDITTOKEN=${CR2[8]}
if [ ${#EDITTOKEN} != 34 ]; then
exit
fi
#########################
CR=$(curl -sS \
--location \
--cookie $cookie_jar \
--cookie-jar $cookie_jar \
--user-agent "Curl Shell Script" \
--keepalive-time 60 \
--header "Accept-Language: en-us" \
--header "Connection: keep-alive" \
--header "Expect:" \
--form "token=${EDITTOKEN}" \
--form "title=${TITLE}" \
--form "text=<$1" \
--request "POST" "${WIKIAPI}?action=edit&")

View File

@ -0,0 +1,2 @@
#!/bin/sh
ls -d */*/*/*/ | `dirname $0`/bucketize.sh weekly | `dirname $0`/towiki.sh

View File

@ -0,0 +1,27 @@
#!/bin/sh
export GIT_DIR=../coreboot/.git
CODE_GITWEB="http://review.coreboot.org/gitweb?p=coreboot.git;a=commitdiff;h="
STATUS_GITWEB="http://review.coreboot.org/gitweb?p=board-status.git;a=blob;hb=HEAD;f="
if [ -f `dirname $0`/foreword.wiki ]; then
cat `dirname $0`/foreword.wiki
fi
while read line; do
timeframe=`echo $line | cut -d: -f1`
rest=`echo $line | cut -d: -f2-`
echo "= $timeframe ="
for i in $rest; do
vendor_board=`echo $i | cut -d/ -f1-2`
commit=`echo $i | cut -d/ -f3`
datetime=`echo $i | cut -d/ -f4`
datetime_human=`LC_ALL=C TZ=UTC date --date="$datetime"`
upstream=`grep "^Upstream revision:" $vendor_board/$commit/$datetime/revision.txt |cut -d: -f2-`
upstream=`git log -1 --format=%H $upstream`
echo $vendor_board at $datetime_human
echo "[$CODE_GITWEB$upstream upstream tree]"
ls $vendor_board/$commit/$datetime/* |grep -v '/revision.txt$' | while read file; do
echo "* [$STATUS_GITWEB$file `basename $file`]"
done
echo
done
done