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