#!/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}" GITEA_REPO="${GITEA_REPO:-mcpctl}" 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!" # Verify the package is linked to the repo (Gitea stores the link at package level) REPO_LINK=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \ "${GITEA_URL}/api/v1/packages/${GITEA_OWNER}/rpm/mcpctl/${RPM_VERSION}" \ | python3 -c "import json,sys; d=json.load(sys.stdin); r=d.get('repository'); print(r.get('full_name') if r else '')" 2>/dev/null) if [ -n "$REPO_LINK" ]; then echo "==> Linked to repo: ${REPO_LINK}" else echo "" echo "WARNING: Package is not linked to a repository." echo "Link it manually in the Gitea UI:" echo " ${GITEA_URL}/${GITEA_OWNER}/-/packages/rpm/mcpctl/${RPM_VERSION}/settings" echo " → Link to repository: ${GITEA_OWNER}/${GITEA_REPO}" fi echo "" echo "Install with:" echo " sudo dnf install mcpctl # if repo already configured"