#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-2.0-or-later
#
# DESCR: Check that every board has a meaningful board_info.txt


LINTDIR="$(
  cd -- "$(dirname "$0")" > /dev/null 2>&1 || return
  pwd -P
)"

# shellcheck source=helper_functions.sh
. "${LINTDIR}/helper_functions.sh"

for mobodir in $(${FIND_FILES} 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"
       continue
    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"
	    continue
	    ;;
	*)
	    echo "$board_info specifies unknown category '$category'"
	    continue
	    ;;
    esac
done

exit 0
