python-bme680/packaging/makelog.sh

84 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# script control variables
libname="" # leave this blank for auto-detection
sibname=() # name of sibling in packages list
versionwarn="yes" # set to anything but 'yes' to turn off warning
debdir="$(pwd)"
rootdir="$(dirname $debdir)"
libdir="$rootdir/library"
mainlog="CHANGELOG"
debianlog="debian/changelog"
pypilog="$libdir/CHANGELOG.txt"
# function define
success() {
echo "$(tput setaf 2)$1$(tput sgr0)"
}
inform() {
echo "$(tput setaf 6)$1$(tput sgr0)"
}
warning() {
echo "$(tput setaf 1)$1$(tput sgr0)"
}
newline() {
echo ""
}
# generate debian changelog
cat $mainlog > $debianlog
inform "seeded debian changelog"
# generate pypi changelog
sed -e "/--/d" \
-e "s/ \*/\*/" \
-e "s/.*(\([0-9].[0-9].[0-9]\)).*/\1/" \
-e '/^[0-9].[0-9].[0-9]$/ a\
-----' $mainlog | cat -s > $pypilog
version=$(head -n 1 $pypilog)
inform "pypi changelog generated"
# touch up version in setup.py file
if [ -n $(grep version "$libdir/setup.py" &> /dev/null) ]; then
inform "touched up version in setup.py"
sed -i "s/'[0-9].[0-9].[0-9]'/'$version'/" "$libdir/setup.py"
else
warning "couldn't touch up version in setup, no match found"
fi
# touch up version in lib or package siblings
if [ -z "$libname" ]; then
cd "$libdir"
libname=$(grep "name" setup.py | tr -d "[:space:]" | cut -c 7- | rev | cut -c 3- | rev)
libname=$(echo "$libname" | tr "[A-Z]" "[a-z]") && cd "$debdir"
sibname+=( "$libname" )
elif [ "$libname" != "package" ]; then
sibname+=( "$libname" )
fi
for sibling in ${sibname[@]}; do
if grep -e "__version__" "$libdir/$sibling.py" &> /dev/null; then
sed -i "s/__version__ = '[0-9].[0-9].[0-9]'/__version__ = '$version'/" "$libdir/$sibling.py"
inform "touched up version in $sibling.py"
elif grep -e "__version__" "$libdir/$sibling/__init__.py" &> /dev/null; then
sed -i "s/__version__ = '[0-9].[0-9].[0-9]'/__version__ = '$version'/" "$libdir/$sibling/__init__.py"
inform "touched up version in $sibling/__init__.py"
elif [ "$versionwarn" == "yes" ]; then
warning "couldn't touch up __version__ in $sibling, no match found"
fi
done
exit 0