#!/bin/sh
# This file is part of the coreboot project.
#
# Copyright (C) 2014 Vladimir Serbinenko <phcoder@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# DESCR: Check that every board has a meaningful board_info.txt

LC_ALL=C export LC_ALL
for mobodir in $(git diff --diff-filter ACMR --name-only src/mainboard | sed -n 's,^\(src/mainboard/[^/]*/[^/]*\)/.*$,\1,p'|sort|uniq); do
    board_info="$mobodir/board_info.txt"
    if ! [ -f "$board_info" ]; then
       echo "No $board_info found"
       exit 1
    fi
    category="$(sed -n 's#^Category: \(.*\)$#\1#p' < "$board_info")"
    case "$category" in
	desktop|server|laptop|half|mini|settop|"eval"|sbc|emulation|misc)
	    ;;
	"")
	    echo "$board_info doesn't contain 'Category' tag"
	    exit 1
	    ;;
	*)
	    echo "$board_info specifies unknown category '$category'"
	    exit 1
	    ;;
    esac
done

exit 0
