diff options
author | Matěj Cepl <mcepl@cepl.eu> | 2024-10-09 14:30:24 +0200 |
---|---|---|
committer | Matěj Cepl <mcepl@cepl.eu> | 2024-10-09 14:30:24 +0200 |
commit | 3b462143c3db41b4b219931abde2c2e217b3c0a0 (patch) | |
tree | fc01ed5ebcfb84fe7d4ee0a453d1958ccfd3388f /git-obranch | |
parent | ed81e3dd9cb6be5246636d017edcfe3232a22ea1 (diff) | |
download | gosc-3b462143c3db41b4b219931abde2c2e217b3c0a0.tar.gz |
chore: rename git-obranch to git-obranch.sh
Diffstat (limited to 'git-obranch')
-rwxr-xr-x | git-obranch | 95 |
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 |