github.com/panekj/cli@v0.0.0-20230304125325-467dd2f3797e/scripts/docs/generate-md.sh (about) 1 #!/usr/bin/env bash 2 3 set -eu 4 5 : "${CLI_DOCS_TOOL_VERSION=v0.5.1}" 6 7 export GO111MODULE=auto 8 9 function clean { 10 rm -rf "$buildir" 11 if [ -f "$(pwd)/docs/reference/commandline/docker.md" ]; then 12 mv "$(pwd)/docs/reference/commandline/docker.md" "$(pwd)/docs/reference/commandline/cli.md" 13 fi 14 } 15 16 buildir=$(mktemp -d -t docker-cli-docsgen.XXXXXXXXXX) 17 trap clean EXIT 18 19 ( 20 set -x 21 cp -r . "$buildir/" 22 cd "$buildir" 23 # init dummy go.mod 24 ./scripts/vendor init 25 # install cli-docs-tool and copy docs/tools.go in root folder 26 # to be able to fetch the required depedencies 27 go mod edit -modfile=vendor.mod -require=github.com/docker/cli-docs-tool@${CLI_DOCS_TOOL_VERSION} 28 cp docs/tools.go . 29 # update vendor 30 ./scripts/vendor update 31 # build docsgen 32 go build -mod=vendor -modfile=vendor.mod -tags docsgen -o /tmp/docsgen ./docs/generate.go 33 ) 34 35 # yaml generation on docs repo needs the cli.md file: https://github.com/docker/cli/pull/3924#discussion_r1059986605 36 # but markdown generation docker.md atm. While waiting for a fix in cli-docs-tool 37 # we need to first move the cli.md file to docker.md, do the generation and 38 # then move it back in trap handler. 39 mv "$(pwd)/docs/reference/commandline/cli.md" "$(pwd)/docs/reference/commandline/docker.md" 40 41 ( 42 set -x 43 /tmp/docsgen --formats md --source "$(pwd)/docs/reference/commandline" --target "$(pwd)/docs/reference/commandline" 44 ) 45 46 # remove generated help.md file 47 rm "$(pwd)/docs/reference/commandline/help.md" >/dev/null 2>&1 || true