diff options
Diffstat (limited to 'tools/gen-bugnote')
-rwxr-xr-x | tools/gen-bugnote | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/gen-bugnote b/tools/gen-bugnote new file mode 100755 index 00000000..786886e5 --- /dev/null +++ b/tools/gen-bugnote @@ -0,0 +1,54 @@ +#!/bin/bash +# +# Given a Wireshark issue ID, fetch its title and prepare an entry suitable +# for pasting into the release notes. Requires curl and jq. +# +# Usage: gen-bugnote <issue number> +# +# Copyright 2013 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +gitlab_issue_url_pfx="https://gitlab.com/api/v4/projects/wireshark%2Fwireshark/issues" +issue_id="${1#\#}" # Strip leading "#" + +case "$OSTYPE" in + darwin*) + clipboard_cmd="pbcopy -Pascii" + ;; + cygwin*) + clipboard_cmd="cat > /dev/clipboard" + ;; + linux*) + clipboard_cmd="xsel --clipboard" + ;; + *) + echo "Unable to copy to clipboard" + clipboard_cmd="cat > /dev/null" + ;; +esac + +if [ -z "$issue_id" ] ; then + echo "Usage: $( basename "$0" ) <issue id>" + exit 1 +fi + +issue_title=$( + curl -s -o - "${gitlab_issue_url_pfx}/$issue_id" \ + | jq '.title' + ) + +# We can escape backslashes in jq's --raw-output or we can trim quotes off +# its plain output. +issue_title="${issue_title%\"}" +issue_title="${issue_title#\"}" +trailing_period="" +if [[ ! ${issue_title: -1} =~ [[:punct:]] ]] ; then + trailing_period="." +fi + +printf "* %s%s wsbuglink:${issue_id}[].\\n" "$issue_title" "$trailing_period" \ + | $clipboard_cmd + +echo "Copied $issue_id: $issue_title" |