1#!/usr/bin/env bash 2 3# Creates `./util/README.md` and `./Documentation/Util.md` of description files 4# in `./util` subdirectories 5# 6# Execute from root of project. Example: 7# `util/util_readme/util_readme.sh` 8 9UTIL_README_DIR="$(cd "$(dirname "$0")" || exit; pwd -P)" 10UTIL_DIR=$(dirname "$UTIL_README_DIR") 11COREBOOT_ROOT_DIR=$(dirname "$UTIL_DIR") 12DOCMENTATION_DIR="$COREBOOT_ROOT_DIR/Documentation" 13SUMMARY=' 14## List of utils 15 16_Scripts and programs found in the coreboot `./util` directory_ 17' 18APPEND_TO_UTIL_MD="${UTIL_README_DIR}/post_util.md" 19 20DESCRIPTION_FILES=$(find "$UTIL_DIR" -name "description.md" | sort) 21 22echo -n "" > "$UTIL_DIR/README.md" 23{ 24 echo 25 echo "[//]: # ( DO NOT EDIT - AUTOGENERATED FILE )"; 26 echo 27 echo "[//]: # ( RUN 'util/util_readme/util_readme.sh' to regenerate )"; 28 echo; 29 echo "# Utilities"; 30 echo "${SUMMARY}" 31} > "${DOCMENTATION_DIR}/util.md" 32 33for DESC_FILE in $DESCRIPTION_FILES; do 34 UTIL_NAME=$(echo "$DESC_FILE" | rev | cut -d '/' -f2 | rev) 35 DESC=$(cat "$DESC_FILE") 36 37 if [[ $DESC == "__"${UTIL_NAME}* || $DESC == "__["${UTIL_NAME}* ]]; then 38 DESC="* $DESC" 39 else 40 DESC="* __${UTIL_NAME}__ - $DESC" 41 fi 42 43 # format description to under 72 characters per line and only 44 # breaking on whitespace 45 DESC=$(echo "$DESC" \ 46 | tr '\r\n' ' ' \ 47 | sed 's/ [*]\+/\n\t\*/g' \ 48 | sed 's/ \+/ /g' \ 49 | fold -s -w72 \ 50 | sed 's/\s*$//') 51 52 echo "$DESC" >> "$UTIL_DIR/README.md" 53 echo "$DESC" >> "$DOCMENTATION_DIR/util.md" 54done 55 56cat "${APPEND_TO_UTIL_MD}" >> "${DOCMENTATION_DIR}/util.md" 57