docs: add code for generating documentation from all old versions of dokku
This generates the appropriate versions for our usage, in addition to ensuring the markdown is of a format that mkdocs understands.
This commit is contained in:
94
contrib/build-docs
Executable file
94
contrib/build-docs
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)"
|
||||
|
||||
main() {
|
||||
pushd "$ROOT_DIR" >/dev/null || return 1
|
||||
rm -rf docs-main tmp/docs-source tmp/docs-build/docs # tmp/docs-build
|
||||
mkdir -p tmp/docs-build
|
||||
cp -r docs docs-main
|
||||
|
||||
git clone https://github.com/dokku/dokku.git tmp/docs-source
|
||||
|
||||
rm -rf docs/assets
|
||||
mkdir -p docs/assets
|
||||
cp -r docs-main/assets/favicons docs/assets/favicons
|
||||
cp -r docs-main/assets/dokku-logo.svg docs/assets/dokku-logo.svg
|
||||
|
||||
rm -rf tmp/docs-build/assets
|
||||
cp -r docs-main/assets tmp/docs-build/assets
|
||||
|
||||
make docs-build
|
||||
mv site tmp/docs-build/docs
|
||||
mv docs/home.html tmp/docs-build/index.html
|
||||
sed -i.bak "s/{{NAME}}~{{REF}}/docs/g" tmp/docs-build/index.html && rm tmp/docs-build/index.html.bak
|
||||
sed -i.bak "s/{{NAME}}/docs/g" tmp/docs-build/index.html && rm tmp/docs-build/index.html.bak
|
||||
|
||||
jq -C -r '.["max-versions"][]' docs-main/assets/versions.json | while read -r current_version; do
|
||||
major="$(echo "$current_version" | cut -d'.' -f1)"
|
||||
minor="$(echo "$current_version" | cut -d'.' -f2)"
|
||||
patch="$(echo "$current_version" | cut -d'.' -f3)"
|
||||
while true; do
|
||||
if [[ "$patch" -lt 0 ]]; then
|
||||
break
|
||||
fi
|
||||
version="${major}.${minor}.${patch}"
|
||||
echo "version: ${major}.${minor}.${patch}"
|
||||
|
||||
if [[ "$major" -lt 1 ]]; then
|
||||
if [[ "$current_version" != "$version" ]] && [[ "$minor" -lt 28 ]]; then
|
||||
rm -rf "tmp/docs-build/docs~v${version}"
|
||||
patch=$((patch - 1))
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d "tmp/docs-build/docs~v${version}" ]]; then
|
||||
patch=$((patch - 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
git -C tmp/docs-source checkout -- .
|
||||
git -C tmp/docs-source checkout "tags/v${version}" -b "v${version}-branch"
|
||||
rm -rf docs
|
||||
mv tmp/docs-source/docs docs
|
||||
|
||||
rm -rf docs/assets
|
||||
mkdir -p docs/assets
|
||||
cp -r docs-main/assets/favicons docs/assets/favicons
|
||||
cp -r docs-main/assets/dokku-logo.svg docs/assets/dokku-logo.svg
|
||||
|
||||
cp -r docs-main/_build docs/_build
|
||||
cp -r docs-main/_overrides docs/_overrides
|
||||
git checkout -- mkdocs.yml
|
||||
sed -i.bak "s/site_dir: site/site_dir: docs~v$version/g" mkdocs.yml && rm mkdocs.yml.bak
|
||||
if [[ ! -f docs/template.html ]]; then
|
||||
if [[ "$patch" -eq 0 ]]; then
|
||||
break
|
||||
fi
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
if ! make docs-build; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ -d "docs~v${version}" ]]; then
|
||||
mv "docs~v${version}" "tmp/docs-build/docs~v${version}"
|
||||
fi
|
||||
|
||||
if [[ "$patch" -eq 0 ]]; then
|
||||
break
|
||||
fi
|
||||
patch=$((patch - 1))
|
||||
done
|
||||
done
|
||||
|
||||
rm -rf docs
|
||||
mv docs-main docs
|
||||
git checkout -- mkdocs.yml docs
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user