|
Stasiek Michalski |
cd8228 |
#!/bin/bash
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# managed by salt - do not edit
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# Copyright (C) 2013-2014, SUSE Linux Products GmbH
|
|
Stasiek Michalski |
cd8228 |
# Copyright (C) 2015-2016, SUSE Linux GmbH
|
|
Stasiek Michalski |
cd8228 |
# Author: Lars Vogdt
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# All rights reserved.
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# Redistribution and use in source and binary forms, with or without
|
|
Stasiek Michalski |
cd8228 |
# modification, are permitted provided that the following conditions are met:
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# * Redistributions of source code must retain the above copyright notice, this
|
|
Stasiek Michalski |
cd8228 |
# list of conditions and the following disclaimer.
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
Stasiek Michalski |
cd8228 |
# this list of conditions and the following disclaimer in the documentation
|
|
Stasiek Michalski |
cd8228 |
# and/or other materials provided with the distribution.
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# * Neither the name of the Novell nor the names of its contributors may be
|
|
Stasiek Michalski |
cd8228 |
# used to endorse or promote products derived from this software without
|
|
Stasiek Michalski |
cd8228 |
# specific prior written permission.
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Stasiek Michalski |
cd8228 |
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Stasiek Michalski |
cd8228 |
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Stasiek Michalski |
cd8228 |
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Stasiek Michalski |
cd8228 |
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Stasiek Michalski |
cd8228 |
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Stasiek Michalski |
cd8228 |
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Stasiek Michalski |
cd8228 |
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Stasiek Michalski |
cd8228 |
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Stasiek Michalski |
cd8228 |
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Stasiek Michalski |
cd8228 |
# POSSIBILITY OF SUCH DAMAGE.
|
|
Stasiek Michalski |
cd8228 |
#
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
BASEDIR="$HOME"
|
|
Stasiek Michalski |
cd8228 |
DESTDIR="/srv/www/vhosts/doc.opensuse.org/release-notes/"
|
|
Stasiek Michalski |
cd8228 |
RELEASENOTES_DATA="$BASEDIR/etc/releasenotes"
|
|
Stasiek Michalski |
cd8228 |
RELNOTESDIR="$BASEDIR/release-notes"
|
|
Stasiek Michalski |
cd8228 |
LOGFILE="$BASEDIR/var/log/$(basename $0).log"
|
|
Stasiek Michalski |
cd8228 |
DO_ECHO=""
|
|
Stasiek Michalski |
cd8228 |
VERBOSE=""
|
|
Stasiek Michalski |
cd8228 |
UNRPM='/usr/bin/unrpm'
|
|
Stasiek Michalski |
cd8228 |
UNPACK_TEMPDIR='/tmp'
|
|
Stasiek Michalski |
cd8228 |
TEMPDIR=$(mktemp -d /tmp/update_release_notes-XXXXXX)
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
cleanup_and_exit() {
|
|
Stasiek Michalski |
cd8228 |
local exitcode="$1"
|
|
Stasiek Michalski |
cd8228 |
rm -rf "$TEMPDIR"
|
|
Stasiek Michalski |
cd8228 |
exit $exitcode
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
usage() {
|
|
Stasiek Michalski |
cd8228 |
echo
|
|
Stasiek Michalski |
cd8228 |
echo "Usage: $(basename $0) [-t][-v]"
|
|
Stasiek Michalski |
cd8228 |
echo " -t : just test, do nothing"
|
|
Stasiek Michalski |
cd8228 |
echo " -v : be verbose"
|
|
Stasiek Michalski |
cd8228 |
echo
|
|
Stasiek Michalski |
cd8228 |
cleanup_and_exit $1
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
LOG(){
|
|
Stasiek Michalski |
cd8228 |
LOG_DATE=`date "+%b %d %H:%M:%S"`
|
|
Stasiek Michalski |
cd8228 |
HOST=`hostname`
|
|
Stasiek Michalski |
cd8228 |
echo "$LOG_DATE $HOST : $1" >> $LOGFILE
|
|
Stasiek Michalski |
cd8228 |
if [ "$VERBOSE" = "yes" ]; then
|
|
Stasiek Michalski |
cd8228 |
echo "$1"
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
get_package_from_obs() {
|
|
Stasiek Michalski |
cd8228 |
local server="$1"
|
|
Stasiek Michalski |
cd8228 |
local localdir="$2"
|
|
Stasiek Michalski |
cd8228 |
local url=$(echo $3 | sed "s|:/|:|g")
|
|
Stasiek Michalski |
cd8228 |
local packagename="$4"
|
|
Stasiek Michalski |
cd8228 |
local archs="$5"
|
|
Stasiek Michalski |
b820dd |
local attempt=$6 || local attempt=0
|
|
Stasiek Michalski |
cd8228 |
attempt=$((attempt+1))
|
|
Stasiek Michalski |
cd8228 |
if [ $attempt -gt 2 ]; then
|
|
Stasiek Michalski |
cd8228 |
echo "Could not find a valid RPM at ${server}/build/$url/$arch/_repository/${packagename} after $attempt attempts - giving up." >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "Could not find a valid RPM at ${server}/build/$url/$arch/_repository/${packagename} after $attempt attempts - giving up"
|
|
Stasiek Michalski |
cd8228 |
return
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
for arch in $archs; do
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO mkdir -p $VERBOSE "$localdir/$arch"
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO curl -s -S $VERBOSE -o "$localdir/$arch"/${packagename}.rpm "${server}/build/$url/$arch/_repository/${packagename}"
|
|
Stasiek Michalski |
cd8228 |
FILETYPE=$(file --brief --mime "$localdir/$arch"/${packagename}.rpm)
|
|
Stasiek Michalski |
cd8228 |
FOUND='no'
|
|
Stasiek Michalski |
cd8228 |
case "$FILETYPE" in
|
|
Stasiek Michalski |
cd8228 |
*application/x-rpm*)
|
|
Stasiek Michalski |
cd8228 |
LOG "$localdir/$arch/${packagename}.rpm is a valid RPM - going forward"
|
|
Stasiek Michalski |
cd8228 |
FOUND='yes'
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*text/plain*)
|
|
Stasiek Michalski |
cd8228 |
if [ "$VERBOSE" = "-v" ]; then
|
|
Stasiek Michalski |
cd8228 |
LOG "$localdir/$arch"/${packagename}.rpm has wrong mime - file content:"
|
|
Stasiek Michalski |
cd8228 |
cat "$localdir/$arch"/${packagename}.rpm" | tee "$LOGFILE"
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*)
|
|
Stasiek Michalski |
cd8228 |
LOG "$localdir/$arch/${packagename}.rpm has wrong/unknown mime type"
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
if [ "$FOUND" == "no" ]; then
|
|
Stasiek Michalski |
b820dd |
LOG "Did not find the wanted RPM at $url - trying different repos now"
|
|
Stasiek Michalski |
cd8228 |
case "$url" in
|
|
Stasiek Michalski |
cd8228 |
*:Update/standard)
|
|
Stasiek Michalski |
cd8228 |
url=${url/:Update/}
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
get_package_from_obs "$server" "$localdir" "$url" "$packagename" "$arch" $attempt
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
output_package() {
|
|
Stasiek Michalski |
cd8228 |
PACKAGE="$1"
|
|
Stasiek Michalski |
cd8228 |
DESTINATION="$2"
|
|
Stasiek Michalski |
cd8228 |
case $DESTINATION in
|
|
Stasiek Michalski |
cd8228 |
"$RELNOTESDIR"/*)
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*)
|
|
Stasiek Michalski |
cd8228 |
echo "ERROR: dest is $DESTINATION" >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "ERROR: dest is $DESTINATION"
|
|
Stasiek Michalski |
cd8228 |
return
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
TMPDIR=$(mktemp -d $TEMPDIR/output_package-XXXXXX)
|
|
Stasiek Michalski |
cd8228 |
test -d "$TMPDIR" || return
|
|
Stasiek Michalski |
cd8228 |
pushd "$TMPDIR" 1>/dev/null
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO $UNRPM "$PACKAGE" 1>/dev/null 2>&1
|
|
Stasiek Michalski |
cd8228 |
PACKNAME=$(rpm -qp --nosignature --nodigest --qf "%{NAME}.rpm" "$PACKAGE")
|
|
Stasiek Michalski |
cd8228 |
popd 1>/dev/null
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO rm -rf $VERBOSE "$DESTINATION"
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO mkdir -p "$DESTINATION"
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a $VERBOSE "$PACKAGE" "$DESTINATION/$PACKNAME"
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a $VERBOSE $TMPDIR/usr/share/doc/release-notes/*.{html,rtf,txt} "$DESTINATION"/ 2>/dev/null
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a $VERBOSE $TMPDIR/usr/share/doc/release-notes/*/*.{html,rtf,txt} "$DESTINATION"/ 2>/dev/null
|
|
Stasiek Michalski |
cd8228 |
for dir in $TMPDIR/usr/share/doc/release-notes/*/release-notes-static ; do
|
|
Stasiek Michalski |
cd8228 |
test -d "$dir" || continue
|
|
Stasiek Michalski |
cd8228 |
test -L "$dir/index.html" -a -f "$dir/index.html" || continue
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a $VERBOSE "$dir"/* "$DESTINATION"/ 2>/dev/null
|
|
Stasiek Michalski |
cd8228 |
N=`readlink "$DESTINATION/index.html"`
|
|
Stasiek Michalski |
cd8228 |
pushd "$DESTINATION" >/dev/null 2>/dev/null
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO rm $VERBOSE index.html
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -f $VERBOSE "$N" index.html
|
|
Stasiek Michalski |
cd8228 |
popd "$DESTINATION" >/dev/null 2>/dev/null
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
for i in "$DESTINATION"/*.html ; do
|
|
Stasiek Michalski |
cd8228 |
test -L "$i" -a ! -f "$i" && $DO_ECHO rm $VERBOSE "$i"
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
pushd "$DESTINATION" 1>/dev/null
|
|
Stasiek Michalski |
cd8228 |
for i in RELEASE-NOTES.*.html; do
|
|
Stasiek Michalski |
cd8228 |
l="${i%.html}"
|
|
Stasiek Michalski |
cd8228 |
l="${l##*.}"
|
|
Stasiek Michalski |
cd8228 |
# use cp as symlinks do not work properly - see bnc #612554 for details (mod_proxy)
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -f $VERBOSE "$i" index.html."$l"
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
if [ ! -e index.html.en ]; then
|
|
Stasiek Michalski |
cd8228 |
for i in en_US en_GB; do
|
|
Stasiek Michalski |
cd8228 |
if [ -e index.html.$i ]; then
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO mv -f $VERBOSE index.html.$i index.html.en
|
|
Stasiek Michalski |
cd8228 |
break
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
popd 1>/dev/null
|
|
Stasiek Michalski |
cd8228 |
if [ -d $TMPDIR/usr/share/doc/release-notes/*/static ]; then
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a $VERBOSE "$TMPDIR"/usr/share/doc/release-notes/*/static "$DESTINATION"/
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
rm -rf "$TMPDIR"
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
create_index_file() {
|
|
Stasiek Michalski |
cd8228 |
DIRECTORY="$1"
|
|
Stasiek Michalski |
cd8228 |
case $DIRECTORY in
|
|
Stasiek Michalski |
cd8228 |
"$RELNOTESDIR"/*)
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*)
|
|
Stasiek Michalski |
cd8228 |
echo "ERROR: create_index_file directory is $DIRECTORY" >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "ERROR: create_index_file directory is $DIRECTORY"
|
|
Stasiek Michalski |
cd8228 |
return
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
test -d "$DIRECTORY" || return
|
|
Stasiek Michalski |
cd8228 |
if [ -f "$DIRECTORY/index.html" ]; then
|
|
Stasiek Michalski |
cd8228 |
LOG "WARNING: $DIRECTORY/index.html exists - skipping"
|
|
Stasiek Michalski |
cd8228 |
return
|
|
Stasiek Michalski |
cd8228 |
else
|
|
Stasiek Michalski |
cd8228 |
LOG "Creating $DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
cat "$RELNOTESDIR/header.html.tmpl" > "$DIRECTORY/index.html" || return
|
|
Stasiek Michalski |
cd8228 |
echo "Directory Index Of $(basename $DIRECTORY)/" >> "$DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
echo "Parent Directory " >> "$DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
echo "" >> "$DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
for dir in $(find "$DIRECTORY" -maxdepth 1 -mindepth 1 -type d); do
|
|
Stasiek Michalski |
cd8228 |
link=$(basename $dir);
|
|
Stasiek Michalski |
cd8228 |
echo "$link" >> "$DIRECTORY/index.html";
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
echo "" >> "$DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
cat "$RELNOTESDIR/footer.html.tmpl" >> "$DIRECTORY/index.html"
|
|
Stasiek Michalski |
cd8228 |
}
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
trap 'echo' SIGHUP SIGINT SIGQUIT
|
|
Stasiek Michalski |
cd8228 |
trap 'cleanup_and_exit 1' SIGTRAP SIGBUS SIGKILL SIGPIPE SIGTERM
|
|
Stasiek Michalski |
cd8228 |
trap 'cleanup_and_exit 0' EXIT
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
while getopts 'htv' OPTION; do
|
|
Stasiek Michalski |
cd8228 |
case $OPTION in
|
|
Stasiek Michalski |
cd8228 |
h) usage 0
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
t) DO_ECHO="echo "
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
v) VERBOSE="-v"
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*) usage 1
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
shift $(( OPTIND - 1 ))
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
if [ ! -x $UNRPM ]; then
|
|
Stasiek Michalski |
cd8228 |
echo "ERROR: $UNRPM not found or not executable" >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "ERROR: $UNRPM not found or not executable"
|
|
Stasiek Michalski |
cd8228 |
cleanup_and_exit 1
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
if [ ! -f "$RELEASENOTES_DATA" ]; then
|
|
Stasiek Michalski |
cd8228 |
echo "ERROR: $RELEASENOTES_DATA not found" >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "ERROR: $RELEASENOTES_DATA not found"
|
|
Stasiek Michalski |
cd8228 |
cleanup_and_exit 1
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
mkdir -p $(dirname $LOGFILE) || { echo "ERROR: could not create $(dirname $LOGFILE); LOG "ERROR: could not create $(dirname $LOGFILE); }
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
while read line; do
|
|
Stasiek Michalski |
cd8228 |
ISBS="no"
|
|
Stasiek Michalski |
cd8228 |
if [[ "$line" == \#* ]]; then
|
|
Stasiek Michalski |
cd8228 |
continue
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
if [[ "$line" == "" ]]; then
|
|
Stasiek Michalski |
cd8228 |
continue
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
DISTVERSION=$(echo $line | cut -d "|" -f 1)
|
|
Stasiek Michalski |
cd8228 |
PRODUKT_NAME=$(echo $line | cut -d "|" -f 2)
|
|
Stasiek Michalski |
cd8228 |
PRODUKT_VERSION=$(echo $line | cut -d "|" -f 3)
|
|
Stasiek Michalski |
cd8228 |
RELEASENOTES_NAME=$(echo $line | cut -d "|" -f 4)
|
|
Stasiek Michalski |
cd8228 |
PRODUKT_ARCHS=$(echo $line | cut -d "|" -f 5)
|
|
Stasiek Michalski |
cd8228 |
case "$DISTVERSION" in
|
|
Stasiek Michalski |
cd8228 |
obs:*)
|
|
Stasiek Michalski |
cd8228 |
OBSDIR="$(mktemp -d "${TEMPDIR}/get_releasenotes-XXXXXX")"
|
|
Stasiek Michalski |
cd8228 |
DISTVERSION=$(echo ${DISTVERSION/obs:\/\//} | sed "s|:|:/|g")
|
|
Stasiek Michalski |
cd8228 |
DISTURL=$(echo ${DISTVERSION/obs:\/\//})
|
|
Stasiek Michalski |
cd8228 |
ISBS="yes"
|
|
Stasiek Michalski |
cd8228 |
INSTANCE="https://build.opensuse.org/public"
|
|
Stasiek Michalski |
cd8228 |
get_package_from_obs "$INSTANCE" "${OBSDIR}/${DISTVERSION}" "$DISTURL" "$RELEASENOTES_NAME" "$PRODUKT_ARCHS"
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
*)
|
|
Stasiek Michalski |
cd8228 |
DISTVERSION="$DISTVERSION-"
|
|
Stasiek Michalski |
cd8228 |
;;
|
|
Stasiek Michalski |
cd8228 |
esac
|
|
Stasiek Michalski |
cd8228 |
LOG "going for $OBSDIR/$DISTVERSION $PRODUKT_NAME/$PRODUKT_VERSION $RELEASENOTES_NAME"
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO mkdir -p "$RELNOTESDIR" || { echo "Could not create $RELNOTESDIR" >&2; cleanup_and_exit 1; }
|
|
Stasiek Michalski |
cd8228 |
if [ "$ISBS" == "yes" ]; then
|
|
Stasiek Michalski |
cd8228 |
# special handling for noarch packages
|
|
Stasiek Michalski |
cd8228 |
RELNOTES_RPM_IS_NOARCH=$(echo "$OBSDIR/$DISTVERSION/"*/$RELEASENOTES_NAME*.rpm | grep noarch)
|
|
Stasiek Michalski |
cd8228 |
for arch in $PRODUKT_ARCHS; do
|
|
Stasiek Michalski |
cd8228 |
if [ -n "$RELNOTES_RPM_IS_NOARCH" ]; then
|
|
Stasiek Michalski |
cd8228 |
repoarch="noarch"
|
|
Stasiek Michalski |
cd8228 |
else
|
|
Stasiek Michalski |
cd8228 |
repoarch="$arch"
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
for relrpm in "$OBSDIR/$DISTVERSION/${repoarch}/"$RELEASENOTES_NAME*.rpm; do
|
|
Stasiek Michalski |
cd8228 |
test -f "$relrpm" || continue
|
|
Stasiek Michalski |
cd8228 |
RPM_NAME=$(rpm -qp --nosignature --nodigest --qf "%{NAME}" "$relrpm")
|
|
Stasiek Michalski |
cd8228 |
if [ "$RPM_NAME" = "$RELEASENOTES_NAME" ]; then
|
|
Christian Boltz |
af22de |
CHECKED=$(rpm --checksig "$relrpm") || { echo "ERROR: $relrpm not signed: $CHECKED" >&2 ; LOG "ERROR: $relrpm not signed: $CHECKED"; continue ; }
|
|
Stasiek Michalski |
cd8228 |
PRODUKT_ARCH=$arch
|
|
Stasiek Michalski |
cd8228 |
output_package "$relrpm" "$RELNOTESDIR/$arch/$PRODUKT_NAME/$PRODUKT_VERSION"
|
|
Stasiek Michalski |
cd8228 |
# create_index_file "$RELNOTESDIR/$BUILDMACHINETYPE/$PRODUKT_NAME"
|
|
Stasiek Michalski |
cd8228 |
if [ "$RELEASENOTES_NAME" != "release-notes" ] ; then
|
|
Stasiek Michalski |
cd8228 |
$DO_ECHO cp -a "$RELNOTESDIR/$arch/$PRODUKT_NAME/$PRODUKT_VERSION"/$RELEASENOTES_NAME*.rpm "$RELNOTESDIR/$arch/$PRODUKT_NAME/$PRODUKT_VERSION/release-notes.rpm"
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
else
|
|
Stasiek Michalski |
cd8228 |
continue
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
done
|
|
Stasiek Michalski |
cd8228 |
date "+%Y-%m-%d %H:%M:%S" > "$RELNOTESDIR/.last_sync"
|
|
Stasiek Michalski |
cd8228 |
else
|
|
Stasiek Michalski |
cd8228 |
echo "Unknown DISTVERSION: $DISTVERSION - can currently handle \"obs://\" URLs only" >&2
|
|
Stasiek Michalski |
cd8228 |
LOG "Unknown DISTVERSION: $DISTVERSION - can currently handle \"obs://\" URLs only"
|
|
Stasiek Michalski |
cd8228 |
cleanup_and_exit 1
|
|
Stasiek Michalski |
cd8228 |
fi
|
|
Stasiek Michalski |
cd8228 |
done < "$RELEASENOTES_DATA"
|
|
Stasiek Michalski |
cd8228 |
|
|
Stasiek Michalski |
cd8228 |
# Only after everything suceeds, we rsync the contents to /srv
|
|
Stasiek Michalski |
cd8228 |
rsync -arz --delete-after "$@" "$RELNOTESDIR/*" "$DESTDIR"
|