diff options
author | mhmdanas <triallax@tutanota.com> | 2023-03-10 21:10:16 +0000 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2023-03-18 19:34:25 +0100 |
commit | d957f7cf9359b426d5b0338bcdd1c778f6e06780 (patch) | |
tree | 5214ee781b38239680435620c4fc0526a9cf0eb3 /xchangelog | |
parent | 97eb26d2dd30d36a811feefb3acaf49c4824c837 (diff) | |
download | xtools-d957f7cf9359b426d5b0338bcdd1c778f6e06780.tar.gz xtools-d957f7cf9359b426d5b0338bcdd1c778f6e06780.tar.xz xtools-d957f7cf9359b426d5b0338bcdd1c778f6e06780.zip |
Add xchangelog command
I didn't make the other changes to the README myself, they were simply done when I ran `make README`.
Diffstat (limited to 'xchangelog')
-rwxr-xr-x | xchangelog | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/xchangelog b/xchangelog new file mode 100755 index 0000000..e97cdf0 --- /dev/null +++ b/xchangelog @@ -0,0 +1,46 @@ +#!/bin/bash +# xchangelog PKGNAME - open package changelog + +XBPS_DISTDIR=$(xdistdir) || exit 1 + +pkg=$1 +[ -z "$pkg" ] && pkg=$(basename "$PWD") + +if [ -f "$pkg" ]; then + template="$pkg" +elif [ -f "$pkg/template" ]; then + template="$pkg/template" +elif [ -f "$XBPS_DISTDIR/srcpkgs/$pkg/template" ]; then + template="$XBPS_DISTDIR/srcpkgs/$pkg/template" +else + echo "No such template: $pkg" >&2 + exit 1 +fi + +. "$template" + +if [ -z "$changelog" ]; then + echo "No changelog defined in template" >&2 + exit 1 +fi + +if ! [ -t 1 ]; then + curl -s -- "$changelog" +elif curl -sI -w "%{content_type}" -o /dev/null -- "$changelog" | grep -i "^text/plain"; then + if [ -n "$PAGER" ]; then + curl -s -- "$changelog" | "$PAGER" + elif type less >/dev/null; then + curl -s -- "$changelog" | less + else + curl -s -- "$changelog" + fi +else + if type xdg-open >/dev/null; then + xdg-open "$changelog" + elif [ -n "$BROWSER" ]; then + "$BROWSER" "$changelog" + else + echo 'Cannot open changelog in web browser, please install xdg-open or define $BROWSER' >&2 + exit 1 + fi +fi |