| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #!/bin/bash
- set -e
- cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
- repo="$1"
- if [ -z "$repo" ]; then
- echo >&2 'error: no repo specified'
- cat >&2 <<EOUSAGE
- usage: $0 repo [> README.md]
- ie: $0 php > ../php/README.md
- This script generates a stub README to standard out for the specified repo.
- EOUSAGE
- exit 1
- fi
- gitRepo='https://github.com/docker-library/docs'
- hubPage="https://hub.docker.com/_/$repo/"
- canonicalRepo="https://github.com/docker-library/$repo"
- if [ -s "$repo/github-repo" ]; then
- canonicalRepo="$(< "$repo/github-repo")"
- fi
- canonicalRepo="$(curl -fsSLI -o /dev/null -w '%{url_effective}\n' "$canonicalRepo")" # follow redirects (http://stackoverflow.com/a/3077316/433558)
- travisRepo="${canonicalRepo#*://github.com/}"
- if [[ "$travisRepo" = elastic/* ]]; then
- # Elastic points "github-repo" at their upstream elastic/xyz-docker repos, but we want our README stubs to still point at our integration repos
- travisRepo="docker-library/$repo"
- fi
- maintainer="$(sed -e 's!%%GITHUB-REPO%%!'"$canonicalRepo"'!g' "$repo/maintainer.md")"
- if [ -f "$repo/deprecated.md" ]; then
- echo '# DEPRECATED'
- echo
- cat "$repo/deprecated.md"
- echo
- fi
- cat <<EOREADME
- # $canonicalRepo
- ## Maintained by: $maintainer
- This is the Git repo of the [Docker "Official Image"](https://github.com/docker-library/official-images#what-are-official-images) for [\`$repo\`]($hubPage) (not to be confused with any official \`$repo\` image provided by \`$repo\` upstream). See [the Docker Hub page]($hubPage) for the full readme on how to use this Docker image and for information regarding contributing and issues.
- The [full image description on Docker Hub]($hubPage) is generated/maintained over in [the docker-library/docs repository]($gitRepo), specifically in [the \`$repo\` directory]($gitRepo/tree/master/$repo).
- ## See a change merged here that doesn't show up on Docker Hub yet?
- For more information about the full official images change lifecycle, see [the "An image's source changed in Git, now what?" FAQ entry](https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what).
- For outstanding \`$repo\` image PRs, check [PRs with the "library/$repo" label on the official-images repository](https://github.com/docker-library/official-images/labels/library%2F$repo). For the current "source of truth" for [\`$repo\`]($hubPage), see [the \`library/$repo\` file in the official-images repository](https://github.com/docker-library/official-images/blob/master/library/$repo).
- EOREADME
- badges=()
- n=$'\n'
- t=$'\t'
- toTest=(
- "https://img.shields.io/travis/$travisRepo/master.svg?label=Travis%20CI" "https://travis-ci.org/$travisRepo/branches"
- "https://img.shields.io/appveyor/ci/$travisRepo/master.svg?label=AppVeyor" "https://ci.appveyor.com/project/$travisRepo"
- "https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/update.sh/job/$repo.svg?label=Automated%20update.sh" "https://doi-janky.infosiftr.net/job/update.sh/job/$repo"
- )
- _check_shields_io_image() {
- wget -qO- "$1" 2>/dev/null \
- | grep -qvE 'unknown|invalid|access denied|not found'
- }
- set -- "${toTest[@]}"
- while [ "$#" -gt 0 ]; do
- image="$1"; shift
- url="$1"; shift
- if _check_shields_io_image "$image"; then
- badges+=( "-${t}[]($url)" )
- fi
- done
- arches="$(bashbrew cat --format '{{ range .Entries }}{{ join "\n" .Architectures }}{{ "\n" }}{{ end }}' "https://github.com/docker-library/official-images/raw/master/library/$repo" | sort -u)"
- if [ -n "$arches" ]; then
- archTable=
- i=0
- for arch in $arches; do
- jenkinsLink="https://doi-janky.infosiftr.net/job/multiarch/job/$arch/job/$repo"
- jenkinsImage="https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/$arch/job/$repo.svg?label=$arch"
- if _check_shields_io_image "$jenkinsImage"; then
- archTable="${archTable:-|} []($jenkinsLink) |"
- (( i = (i + 1) % 4 )) || : # modulo here needs to match the number of colums used below
- if [ "$i" = 0 ]; then
- archTable+="${n}|"
- fi
- fi
- done
- if [ -n "$archTable" ]; then
- if [ "${#badges[@]}" -gt 0 ]; then
- badges+=( '' )
- fi
- badges+=( "| Build | Status | Badges | (per-arch) |${n}|:-:|:-:|:-:|:-:|${n}${archTable%${n}|}" )
- fi
- fi
- if [ "${#badges[@]}" -gt 0 ]; then
- IFS=$'\n'
- cat <<-EOREADME
- ---
- ${badges[*]}
- EOREADME
- unset IFS
- fi
- cat <<EOREADME
- <!-- THIS FILE IS GENERATED BY $gitRepo/blob/master/generate-repo-stub-readme.sh -->
- EOREADME
|