75 lines
1.7 KiB
Plaintext
75 lines
1.7 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# A simple script to update spec or dsc file
|
||
|
# very, very simple. I am happy about patches which handles multiple files with different version numbers
|
||
|
|
||
|
# defaults
|
||
|
MYVERSION=""
|
||
|
FILES=""
|
||
|
|
||
|
while test $# -gt 0; do
|
||
|
case $1 in
|
||
|
*-version)
|
||
|
MYVERSION="$2"
|
||
|
shift
|
||
|
;;
|
||
|
*-file)
|
||
|
FILES="$FILES ${2##*/}"
|
||
|
shift
|
||
|
;;
|
||
|
*-basename)
|
||
|
BASENAME="^$2"
|
||
|
shift
|
||
|
;;
|
||
|
*-outdir)
|
||
|
MYOUTDIR="$2"
|
||
|
shift
|
||
|
;;
|
||
|
*)
|
||
|
echo Unknown parameter $1.
|
||
|
echo 'Usage: set_version --version $VERSION --file $FILE --outdir $OUT'
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
shift
|
||
|
done
|
||
|
|
||
|
if [ -z "$MYVERSION" ]; then
|
||
|
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).tar.*,\1,p" | head -n 1`
|
||
|
fi
|
||
|
if [ -z "$MYVERSION" ]; then
|
||
|
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).tgz$,\1,p" | head -n 1`
|
||
|
fi
|
||
|
if [ -z "$MYVERSION" ]; then
|
||
|
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).zip$,\1,p" | head -n 1`
|
||
|
fi
|
||
|
if [ -z "$MYVERSION" ]; then
|
||
|
echo "ERROR: no version is given and can't get detected automatically"
|
||
|
exit 1
|
||
|
fi
|
||
|
if [ -z "$FILES" ]; then
|
||
|
FILES="*.spec *.dsc"
|
||
|
fi
|
||
|
if [ -z "$MYOUTDIR" ]; then
|
||
|
echo "ERROR: no output directory is given via --outdir parameter!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
for i in $FILES; do
|
||
|
FILE=`ls -1 $i 2>/dev/null`
|
||
|
[ -e "$FILE" ] || continue
|
||
|
|
||
|
sed "s,^Version:.*,Version: $MYVERSION," "$FILE" > "$MYOUTDIR/$FILE" || exit 1
|
||
|
if [ "${FILE%.spec}" != "$FILE" ]; then
|
||
|
# set release back to zero after version upgrade, will be increased by OBS during build
|
||
|
sed "s,^Release:.*,Release: 0," "$FILE" > "$MYOUTDIR/$FILE" || exit 1
|
||
|
fi
|
||
|
|
||
|
if [ "${FILE#_service:}" != "$FILE" ]; then
|
||
|
# we can remove service files, no need to store them twice
|
||
|
rm -f "$FILE"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
exit 0
|