#!/usr/bin/env bash TOP="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. >/dev/null 2>&1 && pwd )" MAINBOARDS="src/mainboard" OUTPUT_FILE=${1:-$TOP/Documentation/security/vboot/list_vboot.md} function has_vboot { local DIR=$1 grep -rq "config VBOOT" $DIR return $? } function get_vendor_name { local VENDORDIR=$1 sed -n '/config VENDOR/{n;s/^[\t[:space:]]\+bool "\(.*\)"/\1/;p;}' \ $VENDORDIR/Kconfig.name } function get_board_name { local BOARDDIR=$1 sed -n '/config BOARD/{n;s/^[\t[:space:]]\+bool "\(->\s\+\)\?\(.*\)"/\2/;p;}' \ $BOARDDIR/Kconfig.name } function list_vboot_boards { local VENDORDIR=$1 for BOARD in $(ls -d $VENDORDIR/*/) do has_vboot $BOARD || continue get_board_name $BOARD done } function generate_vboot_list { for VENDOR in $(ls -d $TOP/$MAINBOARDS/*/) do has_vboot $VENDOR || continue echo -e "\n## $(get_vendor_name $VENDOR)" IFS=$'\n' for BOARD in $(list_vboot_boards $VENDOR) do echo "- $BOARD" done done } (echo "# vboot-enabled devices"; generate_vboot_list) > $OUTPUT_FILE