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."
openSUSE Build Service is sponsored by