fuel-main/report-changelog.sh
Dmitry Burmistrov 49ca2880d9 Implement creating global packages changelog file
Implements: blueprint consolidated-packages-changelog

Change-Id: Ieaea19ac4cb78b7ac6d9f8347917d3d3c84008ab
2014-11-07 11:54:26 +03:00

28 lines
1.2 KiB
Bash
Executable File

#!/bin/bash -e
CENTOS_CHANGELOG=${LOCAL_MIRROR}/centos-packages.changelog
UBUNTU_CHANGELOG=${LOCAL_MIRROR}/ubuntu-packages.changelog
[ -f ${CENTOS_CHANGELOG} ] && rm ${CENTOS_CHANGELOG}
for packagename in `find ${LOCAL_MIRROR} -name \*.rpm | sort -u`; do
echo ${packagename##*/} >> ${CENTOS_CHANGELOG}
rpm -qp --changelog ${packagename} 2>/dev/null | sed -e '/^$/,$d' >> ${CENTOS_CHANGELOG}
echo '' >> ${CENTOS_CHANGELOG}
done
[ -f ${UBUNTU_CHANGELOG} ] && rm ${UBUNTU_CHANGELOG}
for packagename in `find ${LOCAL_MIRROR} -name \*.deb | sort -u`; do
pkgname=${packagename##*/}
DATAFILE=`ar t $packagename | grep ^data`
case ${DATAFILE##*.} in
bz2) ZFLAG='--bzip2' ;;
gz) ZFLAG='-z' ;;
xz) ZFLAG='-J' ;;
*) echo "Unknown data tarball format for package $packagename"; continue ;;
esac
CHANGELOGFILE=`ar p $packagename $DATAFILE | tar $ZFLAG -tvf - | grep '/usr/share/doc/' | grep "/changelog\.Debian\.gz" || :`
CHANGELOGFILE=${CHANGELOGFILE##* }
if [[ ${CHANGELOGFILE:0:2} == './' ]]; then
ar p $packagename $DATAFILE | tar $ZFLAG -xO $CHANGELOGFILE | gzip -cd | sed -n '1,/--/ p' >> ${UBUNTU_CHANGELOG}
echo '' >> ${UBUNTU_CHANGELOG}
fi
done