github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/scripts/site-build.sh (about) 1 #!/usr/bin/env bash 2 set -e 3 HUGO_DOCKER_IMAGE="klakegg/hugo:ext-alpine" 4 ASSET_DIR=${1:-src/query/generated/assets/openapi} 5 6 # First generate old versions 7 DOCS_VERSIONS=$(git tag -l 'docs/*') 8 9 # Now generate latest 10 # Copy over OpenAPI doc. 11 mkdir -p site/static/openapi 12 rsync -a --exclude=*.go "$ASSET_DIR"/* site/static/openapi 13 # Create .bak file and then delete it to make sed work for both GNU and Mac versions 14 sed -i.bak "s#spec-url='.*'#spec-url='spec.yml'#g" site/static/openapi/index.html 15 rm -f site/static/openapi/index.html.bak 16 17 # Now run hugo 18 if [[ -n "${HUGO_DOCKER:-}" ]]; then 19 docker run -e HUGO_ENV=production -it -v "$PWD"/site:/src "${HUGO_DOCKER_IMAGE}" 20 else 21 cd site 22 hugo -e production -v 23 cd .. 24 fi 25 26 for docVersion in $DOCS_VERSIONS 27 do 28 # Add copies of all docs tags 29 IFS='/' 30 read -ra version <<< "$docVersion" 31 echo "Building $docVersion" 32 git archive --output "site/${version[1]}.zip" "$docVersion:site/" && unzip -d "site/${version[1]}" "site/${version[1]}.zip" && rm -f "site/${version[1]}.zip" 33 34 # Now run hugo 35 if [[ -n "${HUGO_DOCKER:-}" ]]; then 36 docker run -e HUGO_ENV=production -e HUGO_DESTINATION="public/${version[1]}" -it -v "$PWD/site/${version[1]}":/src "${HUGO_DOCKER_IMAGE}" 37 else 38 cd "site/${version[1]}" 39 hugo -e production -v -d "../public/${version[1]}" 40 cd ../../ 41 fi 42 done