#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_ROOT" # Load .env if present if [ -f .env ]; then set -a; source .env; set +a fi GITEA_URL="${GITEA_URL:-http://10.0.0.194:3012}" GITEA_OWNER="${GITEA_OWNER:-michal}" if [ -z "$GITEA_TOKEN" ]; then echo "Error: GITEA_TOKEN not set. Add it to .env or export it." exit 1 fi RPM_FILE=$(ls dist/mcpctl-*.rpm 2>/dev/null | head -1) if [ -z "$RPM_FILE" ]; then echo "Error: No RPM found in dist/. Run scripts/build-rpm.sh first." exit 1 fi # Get version string as it appears in Gitea (e.g. "0.1.0-1") RPM_VERSION=$(rpm -qp --queryformat '%{VERSION}-%{RELEASE}' "$RPM_FILE") echo "==> Publishing $RPM_FILE (version $RPM_VERSION) to ${GITEA_URL}..." # Check if version already exists and delete it first EXISTING=$(curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: token ${GITEA_TOKEN}" \ "${GITEA_URL}/api/v1/packages/${GITEA_OWNER}/rpm/mcpctl/${RPM_VERSION}") if [ "$EXISTING" = "200" ]; then echo "==> Version $RPM_VERSION already exists, replacing..." curl -s -o /dev/null -X DELETE \ -H "Authorization: token ${GITEA_TOKEN}" \ "${GITEA_URL}/api/v1/packages/${GITEA_OWNER}/rpm/mcpctl/${RPM_VERSION}" fi # Upload curl --fail -s -X PUT \ -H "Authorization: token ${GITEA_TOKEN}" \ --upload-file "$RPM_FILE" \ "${GITEA_URL}/api/packages/${GITEA_OWNER}/rpm/upload" echo "" echo "==> Published successfully!" echo "" echo "Install with:" echo " sudo dnf config-manager --add-repo ${GITEA_URL}/api/packages/${GITEA_OWNER}/rpm.repo" echo " sudo dnf install mcpctl"