You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
906 B
36 lines
906 B
#!/bin/bash |
|
set -euo pipefail |
|
IFS=$'\n\t' |
|
|
|
export FILE=$1 |
|
export VERSION=$2 |
|
export NAME=$3 |
|
export MESSAGE=$4 |
|
export DATE=$(date "+%a %b %d %Y") |
|
|
|
set +e |
|
grep --version | grep BSD &> /dev/null |
|
if [ $? == 0 ]; then BSDGREP=true ; else BSDGREP=false ; fi |
|
set -e |
|
|
|
# echo "#~~~~~~~~~~~~~~~~~~~~" |
|
# echo "$0 variables:" |
|
# echo "VERSION: ${VERSION}" |
|
# echo "NAME: ${NAME}" |
|
# echo "MESSAGE: ${MESSAGE}" |
|
# echo "DATE: ${DATE}" |
|
# echo "BSDGREP: ${BSDGREP}" |
|
# echo "#~~~~~~~~~~~~~~~~~~~~" |
|
# echo |
|
|
|
if $BSDGREP ; then |
|
sed -i '' s/^Version:.*/"Version: ${VERSION}"/ ${FILE} |
|
else |
|
sed -i s/^Version:.*/"Version: ${VERSION}"/ ${FILE} |
|
fi |
|
|
|
awk -v version=${VERSION} -v date=${DATE} -v name=${NAME} -v message=${MESSAGE} \ |
|
'FNR==NR{ if (/%changelog/) p=NR; next} 1; FNR==p{ print "* " date " " name " - " version "\n- " message "\n" }' \ |
|
${FILE} ${FILE} > ${FILE}.new |
|
|
|
mv ${FILE}.new ${FILE}
|
|
|