Adrian Schröter 2020-08-25 06:03:52 +00:00 committed by Git OBS Bridge
parent de1d5e4aea
commit 71bef62079

View File

@ -30,6 +30,7 @@ echo "Running obsgendiff data differ..."
# extract released obsgendiff aggregates
for obsgendiff in /.build.packages/SOURCES/*.obsgendiff; do
[ -e "$obsgendiff" ] || continue
echo "Extracting $obsgendiff"
mkdir -p "${outreleased}"
tar xfv "$obsgendiff" -C "${outreleased}"
done
@ -37,6 +38,11 @@ done
# create changelogs based on the packaged rpms
mkdir -p $out/{changelogs,disturl}
for report in /.build.packages/OTHER/*.report; do
# skip source and debug media
[ "$report" = "${report/-Media2/}" ] || continue
[ "$report" = "${report/-Media3/}" ] || continue
sed -n -e 's,.*<binary .*obs://\(.*\)</binary>,\1,p' "$report" | while read binary; do
rpm="${binary##*/}"
@ -52,42 +58,44 @@ for report in /.build.packages/OTHER/*.report; do
done
# create archive
cd $out
gendiff=${packages%.packages}.obsgendiff
tar cfJ /.build.packages/OTHER/${gendiff##*/} *
cd -
pushd $out
gendiff=${report%.report}.obsgendiff
tar cfJ /.build.packages/OTHER/${gendiff##*/} .
popd
# create diff to released archive
# NOTE: it had to be published or it won't exist
if [ -d "${outreleased}" ]; then
changelog=/.build.packages/OTHER/ChangeLog.${report##*/}
changelog=${changelog%.report}.txt
echo ""> $changelog
# removed packages
echo "Removed packages">> $changelog
echo "================">> $changelog
echo "">> $changelog
find "$outreleased/changelogs/" -type f | sort | sed "s,^$outreleased/changelogs/,," | while read file; do
[ -e "${out}/changelogs/$file" ] || echo " - ${file##*::}" >> $changelog
done
echo "">> $changelog
# new packages
echo "New packages">> $changelog
echo "============">> $changelog
echo "">> $changelog
find "$out/changelogs/" -type f | sort | sed "s,^$out/changelogs/,," | while read file; do
[ -e "${outreleased}/changelogs/$file" ] || echo " - ${file##*::}" >> $changelog
done
echo "">> $changelog
# changed packages
echo "Package updates">> $changelog
echo "===============">> $changelog
echo "">> $changelog
diff -ur "${outreleased}/changelogs/" "$out/changelogs/" | grep -v '^Only in ' | grep '^[+-]' | grep -v '^--- ' | sed 's,^+++ .*/\([^\t]*\).*$,\1,' >> $changelog
fi
done
# create diff to released archive
# NOTE: it had to be published or it won't exist
if [ -d "${outreleased}" ]; then
changelog=/.build.packages/OTHER/ChangeLog.txt
echo ""> $changelog
echo "Removed packages">> $changelog
echo "================">> $changelog
echo "">> $changelog
# new packages
find "$outreleased/" -type f | sort | sed "s,^$outreleased/,," | while read file; do
[ -e "${out}/$file" ] || echo " - $file" >> $changelog
done
# new packages
echo "">> $changelog
echo "New packages">> $changelog
echo "============">> $changelog
echo "">> $changelog
find "$out/" -type f | sort | sed "s,^$out/,," | while read file; do
[ -e "${outreleased}/$file" ] || echo " - $file" >> $changelog
done
# changed packages
echo "">> $changelog
echo "Package updates">> $changelog
echo "===============">> $changelog
echo "">> $changelog
diff -ur "${outreleased}/" "$out/" >> $changelog
fi
exit 0