generate-badge.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env bash
  2. ##
  3. # Downloads a custom badge from shields.io
  4. #
  5. # All credit goes to the awesome guys at shields.io!
  6. #
  7. # @see http://shields.io/
  8. #
  9. # @author Daniel Rudolf
  10. # @link http://picocms.org
  11. # @license http://opensource.org/licenses/MIT
  12. #
  13. set -e
  14. # parameters
  15. BADGE_FILE_PATH="$1" # target file path
  16. BADGE_SUBJECT="$2" # subject (left half) of the badge
  17. BADGE_STATUS="$3" # status (right half) of the badge
  18. BADGE_COLOR="$4" # color of the badge
  19. # print parameters
  20. echo "Generating badge..."
  21. printf 'BADGE_FILE_PATH="%s"\n' "$BADGE_FILE_PATH"
  22. printf 'BADGE_SUBJECT="%s"\n' "$BADGE_SUBJECT"
  23. printf 'BADGE_STATUS="%s"\n' "$BADGE_STATUS"
  24. printf 'BADGE_COLOR="%s"\n' "$BADGE_COLOR"
  25. echo
  26. # download badge from shields.io
  27. printf 'Downloading badge...\n'
  28. TMP_BADGE="$(mktemp -u)"
  29. curl --location --output "$TMP_BADGE" \
  30. "https://img.shields.io/badge/$BADGE_SUBJECT-$BADGE_STATUS-$BADGE_COLOR.svg"
  31. # validate badge
  32. if [ ! -f "$TMP_BADGE" ] || [ ! -s "$TMP_BADGE" ]; then
  33. echo "Unable to generate badge; skipping..." >&2
  34. exit 1
  35. fi
  36. # MIME type image/svg+xml isn't supported at the moment
  37. #
  38. #TMP_BADGE_MIME="$(file --mime-type "$TMP_BADGE" | cut -d ' ' -f 2)"
  39. #if [ "$TMP_BADGE_MIME" != "image/svg+xml" ]; then
  40. # echo "Generated badge should be of type 'image/svg+xml', '$TMP_BADGE_MIME' given; aborting...\n" >&2
  41. # exit 1
  42. #fi
  43. # deploy badge
  44. mv "$TMP_BADGE" "$BADGE_FILE_PATH"
  45. echo