aboutsummaryrefslogtreecommitdiffstats
path: root/git-obranch
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2024-10-09 14:30:24 +0200
committerMatěj Cepl <mcepl@cepl.eu>2024-10-09 14:30:24 +0200
commit3b462143c3db41b4b219931abde2c2e217b3c0a0 (patch)
treefc01ed5ebcfb84fe7d4ee0a453d1958ccfd3388f /git-obranch
parented81e3dd9cb6be5246636d017edcfe3232a22ea1 (diff)
downloadgosc-3b462143c3db41b4b219931abde2c2e217b3c0a0.tar.gz
chore: rename git-obranch to git-obranch.sh
Diffstat (limited to 'git-obranch')
-rwxr-xr-xgit-obranch95
1 files changed, 0 insertions, 95 deletions
diff --git a/git-obranch b/git-obranch
deleted file mode 100755
index ddd9a3e..0000000
--- a/git-obranch
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-# Requires: coreutils, curl, jq, git
-set -uex
-
-API_KEY="$(cat "$(dirname "$(readlink -f "$0")")"/gitea-api-token.txt)"
-
-gitea_cmd () {
- ADD_PARAMS=${2:-}
- # shellcheck disable=SC2048,SC2086
- curl -s -H 'Accept: application/json' -H 'Content-Type: application/json' \
- -H "Authorization: token $API_KEY" ${ADD_PARAMS[*]} \
- "https://src.opensuse.org/api/v1/$1" 2>/dev/null
-}
-
-[ "$#" -lt 2 ] && exit 1
-
-if [ "$1" = "openSUSE:Factory" ] ; then
- OUT=$(osc develproject "$1" "$2")
- DEVPRJ="$(dirname "$OUT")"
- PKG="$(basename "$OUT")"
-else
- DEVPRJ="$1"
- PKG="$2"
-fi
-
-osc co "$DEVPRJ" "$PKG"
-cd "$DEVPRJ/$PKG"
-
-# Init git?
-if ! git rev-parse --git-dir >/dev/null 2>&1 ; then
- git init -q -b obs_state
- git add -A . && git rm --cached -r .osc/ && git commit -m 'OBS last state'
- git remote add origin "https://src.opensuse.org/pool/$PKG.git"
-fi
-
-# # Fork
-# Whoami?
-LOGIN="$(gitea_cmd "user" | jq -r '.login')"
-# Do we have our own configuration for MYORG?
-# either --default ""
-MYORG="$(git config --get -default '' obs.org)"
-if [ -z "${MYORG}" ] ; then
- MYORG="${LOGIN}"
-fi
-
-# Check whether the fork already exists
-FRK_OUT="$(gitea_cmd "repos/pool/$PKG/forks")"
-FORKS="$(echo "$FRK_OUT" | jq -r '.[].full_name | select(startswith("rpm/") | not)')"
-
-if [ -n "$FORKS" ] ; then
- # shellcheck disable=SC2086
- MY_FORK="$(echo "$FRK_OUT" | jq -r ".[].full_name | select(startswith(\""$MYORG/"\"))")"
-else
- MY_FORK=""
-fi
-
-# If not, make a fork
-if [ -z "$MY_FORK" ] ; then
- if [ "$MYORG" = "$LOGIN" ] ; then
- FRK_OUT="$(gitea_cmd "repos/pool/$PKG/forks" "-X POST")"
- else
- # shellcheck disable=SC2086
- FRK_OUT="$(echo '{ "organization": "'$MYORG'" }' \
- | gitea_cmd "repos/pool/$PKG/forks" "-d @-")"
- fi
- MY_FORK="$(echo "$FRK_OUT" | jq -r '.full_name')"
-fi
-
-# Set URLs for the forked repository
-git remote add myproj "https://src.opensuse.org/$MY_FORK.git"
-git remote set-url --push myproj "gitea@src.opensuse.org:$MY_FORK.git"
-git remote update
-
-# # Final cleanup
-# Add ignore
-echo '.osc/' >> .git/info/exclude
-echo '_scmsync.obsinfo' >> .git/info/exclude
-# Set config
-git config "lfs.$(git remote get-url myproj)/info/lfs.locksverify" true
-# Switch to factory branch, obs_state is just a record of the old state
-git checkout --force -B factory myproj/factory
-
-# # SCM Sync settings
-OSC_META=$(mktemp /tmp/osc_meta_data.XXXXXX.xml)
-trap 'rm -f $OSC_META' EXIT
-
-osc meta pkg "$DEVPRJ" "$PKG" >"$OSC_META" 2>/dev/null
-
-# If this is considered a bad idea
-# (https://stackoverflow.com/a/1732454/164233) we can use
-# xmlstarlet instead.
-if ! grep '<scmsync>' "$OSC_META" >/dev/null 2>&1 ; then
- sed -e "/<\/package>/i\ \ <scmsync>https://src.opensuse.org/pool/$PKG#factory<\/scmsync>" \
- "$OSC_META" | osc meta pkg "$DEVPRJ" "$PKG" -F -
-fi