2019-03-18 12:19:30 -06:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
README_DIRS=(
|
|
|
|
apps
|
|
|
|
models
|
|
|
|
tools
|
|
|
|
)
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
cargo build --manifest-path "scripts/modeltool/Cargo.toml" --release
|
|
|
|
|
|
|
|
MODELTOOL="$(realpath "scripts/modeltool/target/release/modeltool")"
|
|
|
|
|
2023-10-13 21:53:41 -06:00
|
|
|
readme_model() {
|
2019-03-18 12:19:30 -06:00
|
|
|
echo -e "\x1B[1m$1\x1B[0m" >&2
|
|
|
|
|
|
|
|
pushd "$1" > /dev/null
|
|
|
|
cp README.md.in README.md
|
|
|
|
|
2021-12-21 10:32:37 -07:00
|
|
|
echo -e "\n## Contents\n" >> README.md
|
2019-03-18 12:19:30 -06:00
|
|
|
"$MODELTOOL" . >> README.md
|
|
|
|
popd > /dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
for dir in models/*/
|
|
|
|
do
|
|
|
|
readme_model "${dir%/}"
|
|
|
|
done
|
|
|
|
|
2023-10-13 21:53:41 -06:00
|
|
|
readme_line() {
|
2019-03-18 12:19:30 -06:00
|
|
|
echo -e " \x1B[1m$1\x1B[0m" >&2
|
|
|
|
|
2019-03-18 12:26:17 -06:00
|
|
|
name="$(basename "$1")"
|
|
|
|
description=""
|
|
|
|
|
|
|
|
readme="$(find "$1" -maxdepth 1 -iname README.md)"
|
|
|
|
if [ -n "$readme" ]
|
2019-03-18 12:19:30 -06:00
|
|
|
then
|
|
|
|
# Get first line, removing the trailing pounds and spaces
|
2019-03-18 12:26:17 -06:00
|
|
|
description=" - $(head -n 1 "$readme" | sed -e 's/^[#[:space:]]*//')"
|
2019-03-18 12:19:30 -06:00
|
|
|
fi
|
|
|
|
|
|
|
|
submodule="$(git submodule status "$1" 2> /dev/null | cut -d ' ' -f 3 || true)"
|
2023-10-13 21:53:41 -06:00
|
|
|
if [ "$submodule" = "$1" ]
|
2019-03-18 12:19:30 -06:00
|
|
|
then
|
|
|
|
# Link to submodule URL
|
2019-03-18 12:26:17 -06:00
|
|
|
origin="$(git -C "$1" remote get-url origin)"
|
|
|
|
echo "- [$name]($origin)$description"
|
2019-03-18 12:19:30 -06:00
|
|
|
else
|
|
|
|
# Link to directory
|
2019-03-18 12:26:17 -06:00
|
|
|
echo "- [$name](./$1)$description"
|
2019-03-18 12:19:30 -06:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-10-13 21:53:41 -06:00
|
|
|
readme_dir() {
|
2019-03-18 12:19:30 -06:00
|
|
|
echo -e "\x1B[1m$1\x1B[0m" >&2
|
|
|
|
|
|
|
|
pushd "$1" > /dev/null
|
|
|
|
cp README.md.in README.md
|
|
|
|
|
2021-12-21 10:32:37 -07:00
|
|
|
echo -e "\n## Contents\n" >> README.md
|
2019-03-18 12:19:30 -06:00
|
|
|
for dir in */
|
|
|
|
do
|
2019-05-02 15:50:31 -06:00
|
|
|
if ! git check-ignore --quiet "${dir}"
|
|
|
|
then
|
|
|
|
readme_line "${dir%/}" >> README.md
|
|
|
|
fi
|
2019-03-18 12:19:30 -06:00
|
|
|
done
|
|
|
|
popd > /dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
for dir in "${README_DIRS[@]}"
|
|
|
|
do
|
|
|
|
readme_dir "$dir"
|
|
|
|
done
|