munge_rpm_spec.sh 906 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. set -euo pipefail
  3. IFS=$'\n\t'
  4. export FILE=$1
  5. export VERSION=$2
  6. export NAME=$3
  7. export MESSAGE=$4
  8. export DATE=$(date "+%a %b %d %Y")
  9. set +e
  10. grep --version | grep BSD &> /dev/null
  11. if [ $? == 0 ]; then BSDGREP=true ; else BSDGREP=false ; fi
  12. set -e
  13. # echo "#~~~~~~~~~~~~~~~~~~~~"
  14. # echo "$0 variables:"
  15. # echo "VERSION: ${VERSION}"
  16. # echo "NAME: ${NAME}"
  17. # echo "MESSAGE: ${MESSAGE}"
  18. # echo "DATE: ${DATE}"
  19. # echo "BSDGREP: ${BSDGREP}"
  20. # echo "#~~~~~~~~~~~~~~~~~~~~"
  21. # echo
  22. if $BSDGREP ; then
  23. sed -i '' s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
  24. else
  25. sed -i s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
  26. fi
  27. awk -v version=${VERSION} -v date=${DATE} -v name=${NAME} -v message=${MESSAGE} \
  28. 'FNR==NR{ if (/%changelog/) p=NR; next} 1; FNR==p{ print "* " date " " name " - " version "\n- " message "\n" }' \
  29. ${FILE} ${FILE} > ${FILE}.new
  30. mv ${FILE}.new ${FILE}