File update-opera.sh of Package opera
#!/bin/bash
set -euo pipefail
PACKAGE="opera"
SPEC_FILE="${PACKAGE}.spec"
WORKDIR="$(pwd)"
echo "Working directory: $WORKDIR"
# -----------------------
# 1. Detect new RPM
# -----------------------
NEW_RPM=$(ls ${PACKAGE}_*_amd64.rpm | sort -V | tail -1)
if [[ -z "$NEW_RPM" ]]; then
echo "Error: No RPM found in package folder."
exit 1
fi
echo "Using RPM: $NEW_RPM"
# Extract version from filename
LATEST_VERSION=$(echo "$NEW_RPM" | grep -Po '\d+\.\d+\.\d+\.\d+')
if [[ -z "$LATEST_VERSION" ]]; then
echo "Error: Could not parse version from $NEW_RPM"
exit 1
fi
echo "Detected version: $LATEST_VERSION"
# -----------------------
# 2. Remove old RPMs
# -----------------------
for file in ${PACKAGE}_*_amd64.rpm; do
if [[ "$file" != "$NEW_RPM" ]]; then
echo "Deleting old RPM: $file"
rm -f "$file"
fi
done
# -----------------------
# 3. Update spec file
# -----------------------
echo "Updating $SPEC_FILE..."
sed -i "s/^Version:.*/Version: $LATEST_VERSION/" "$SPEC_FILE"
sed -i "s|^Source0:.*|Source0: $NEW_RPM|" "$SPEC_FILE"
# -----------------------
# 4. Commit to OBS
# -----------------------
osc addremove
osc ci -m "Update Opera to $LATEST_VERSION"
echo "Done! Opera $LATEST_VERSION is now updated in OBS."