blob: 75faecb989f6a4301ea43b37b5094fb876c25777 (
plain) (
tree)
|
|
#!/bin/sh
set -eu
if [ ! -d .osc ] && [ ! -d .git ] ; then
echo 'This program must be run from an project directory.'
exit 42
fi
which_pr() {
TOKEN=$(pass show dev/github.com|awk '/^token:/ {print $2}')
ORIG_USER=$(git remote get-url origin 2>/dev/null|awk -F/ '{print $4}')
REPO=$(git remote get-url origin 2>/dev/null|awk -F'[/.]' '{print $6}')
USER=$(git remote get-url github 2>/dev/null|awk -F/ '{print $4}')
BRANCH=$(git rev-parse --abbrev-ref HEAD)
curl -s -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/$ORIG_USER/$REPO/pulls?head=mcepl:$BRANCH" \
| jq -r .[].html_url 2>/dev/null
}
o_url=""
if [ -f .osc/_packages ] ; then
apiurl=$(cat .osc/_apiurl)
project=$(cat .osc/_project)
o_url="${apiurl}/project/show/${project}"
elif [ -f .osc/_package ] ; then
apiurl=$(cat .osc/_apiurl)
project=$(cat .osc/_project)
package=$(cat .osc/_package)
o_url="${apiurl}/package/show/${project}/${package}"
fi
if [ -z "$o_url" ] ; then
pr_url="$(which_pr)" || true
if [ -n "$pr_url" ] ; then
o_url="$pr_url"
elif [ -d .git ] ; then
if git remote show gitlab >/dev/null 2>&1 ; then
o_url="$(git remote get-url gitlab)"
elif git remote show github >/dev/null 2>&1 ; then
o_url="$(git remote get-url github)"
elif git remote show sourcehut >/dev/null 2>&1 ; then
o_url="$(git remote get-url sourcehut)"
elif git remote show myrepo >/dev/null 2>&1 ; then
o_url="$(git remote get-url myrepo)"
elif git remote show origin >/dev/null 2>&1 ; then
o_url="$(git remote get-url origin)"
else
exit 0
fi
fi
fi
[ -z "$o_url" ] || xdg-open "$o_url" >/dev/null 2>&1
|