aboutsummaryrefslogblamecommitdiffstats
path: root/po
blob: 75faecb989f6a4301ea43b37b5094fb876c25777 (plain) (tree)
1
2
3
4
5
6
7
8
         
       
 

                                                              


           














                                                                                

                               

                                

                                             


                                
                                                        
  
 
                         
                                



















                                                             
#!/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