generate-repo-stub-readme.sh 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. set -e
  3. cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. repo="$1"
  5. if [ -z "$repo" ]; then
  6. echo >&2 'error: no repo specified'
  7. cat >&2 <<EOUSAGE
  8. usage: $0 repo [> README.md]
  9. ie: $0 php > ../php/README.md
  10. This script generates a stub README to standard out for the specified repo.
  11. EOUSAGE
  12. exit 1
  13. fi
  14. gitRepo='https://github.com/docker-library/docs'
  15. hubPage="https://registry.hub.docker.com/_/$repo/"
  16. canonicalRepo="https://github.com/docker-library/$repo"
  17. if [ -s "$repo/github-repo" ]; then
  18. canonicalRepo="$(< "$repo/github-repo")"
  19. fi
  20. canonicalRepo="$(curl -fsSLI -o /dev/null -w '%{url_effective}\n' "$canonicalRepo")" # follow redirects (http://stackoverflow.com/a/3077316/433558)
  21. travisRepo="${canonicalRepo#*://github.com/}"
  22. if [ -f "$repo/deprecated.md" ]; then
  23. echo '# DEPRECATED'
  24. echo
  25. cat "$repo/deprecated.md"
  26. echo
  27. fi
  28. cat <<EOREADME
  29. # About this Repo
  30. This is the Git repo of the Docker [official image](https://docs.docker.com/docker-hub/official_repos/) for [$repo]($hubPage). See [the Docker Hub page]($hubPage) for the full readme on how to use this Docker image and for information regarding contributing and issues.
  31. The full readme is generated over in [docker-library/docs]($gitRepo), specifically in [docker-library/docs/$repo]($gitRepo/tree/master/$repo).
  32. See a change merged here that doesn't show up on the Docker Hub yet? Check [the "library/$repo" manifest file in the docker-library/official-images repo](https://github.com/docker-library/official-images/blob/master/library/$repo), especially [PRs with the "library/$repo" label on that repo](https://github.com/docker-library/official-images/labels/library%2F$repo). For more information about the official images process, see the [docker-library/official-images readme](https://github.com/docker-library/official-images/blob/master/README.md).
  33. EOREADME
  34. badges=()
  35. n=$'\n'
  36. t=$'\t'
  37. travisImage="https://img.shields.io/travis/$travisRepo/master.svg"
  38. if wget -q --spider "$travisImage" &> /dev/null; then
  39. travisLink="https://travis-ci.org/$travisRepo/branches"
  40. badges+=( "-${t}[Travis CI: ${n}${t}![build status badge]($travisImage)]($travisLink)" )
  41. fi
  42. jenkinsImage="https://doi-janky.infosiftr.net/job/update.sh/job/$repo/badge/icon"
  43. if wget -q --spider "$jenkinsImage" &> /dev/null; then
  44. jenkinsLink="https://doi-janky.infosiftr.net/job/update.sh/job/$repo"
  45. badges+=( "-${t}[Automated \`update.sh\`: ${n}${t}![build status badge]($jenkinsImage)]($jenkinsLink)" )
  46. fi
  47. if [ "${#badges[@]}" -gt 0 ]; then
  48. IFS=$'\n'
  49. cat <<-EOREADME
  50. ---
  51. ${badges[*]}
  52. EOREADME
  53. unset IFS
  54. fi
  55. cat <<EOREADME
  56. <!-- THIS FILE IS GENERATED BY $gitRepo/blob/master/generate-repo-stub-readme.sh -->
  57. EOREADME