#!/bin/bash set -Ee set -u set -o pipefail issuesjson="${XDG_CACHE_HOME:-$HOME/.cache}/rofi-gh-issues/issues.json" mkdir -p "$(dirname "$issuesjson")" initial_call_list() { gh api search/issues -X GET -f q='user:@me is:open' \ | jq '.items | map({url:.html_url, display:("[" + (.repository_url | split("/"))[-1] + "] " + .title)})' \ | tee "$issuesjson" \ | jq -r 'map(.display)[]' \ ; return 0 } selected_entry() { selection="$1" jq -r ".[] | select(.display==\"$selection\").url" "$issuesjson" \ | xargs xdg-open \ ; return 0 } case "$ROFI_RETV" in 0) initial_call_list exit "$?" ;; 1) selected_entry "$1" exit "$?" ;; *) exit 2 ;; esac