blob: 986c393ca8d13b9d77a9b05af4c77ea347a59a97 [file] [log] [blame]
Yegor Timoshenkoc2e49412018-10-07 01:58:27 +00001#!/usr/bin/env bash
Tom Hillered6d1e62018-07-21 00:23:17 -04002
3# Creates `./util/README.md` and `./Documentation/Util.md` of description files
4# in `./util` subdirectories
5#
6# Execute from root of project. Example:
Jonathan Neuschäfer05400b72018-12-11 15:49:04 +01007# `util/util_readme/util_readme.sh`
Tom Hillered6d1e62018-07-21 00:23:17 -04008
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"
Martin Roth124c4182022-05-22 19:11:04 -060013SUMMARY='
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"
Tom Hillered6d1e62018-07-21 00:23:17 -040019
20DESCRIPTION_FILES=$(find "$UTIL_DIR" -name "description.md" | sort)
21
22echo -n "" > "$UTIL_DIR/README.md"
Martin Roth124c4182022-05-22 19:11:04 -060023{
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"
Tom Hillered6d1e62018-07-21 00:23:17 -040032
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
Martin Roth124c4182022-05-22 19:11:04 -060055
56cat "${APPEND_TO_UTIL_MD}" >> "${DOCMENTATION_DIR}/util.md"