From c85c39dcdac39078aa6e57713b78e8f67f8f1580 Mon Sep 17 00:00:00 2001 From: Alexander Kurakin Date: Tue, 19 Dec 2023 23:19:31 +0300 Subject: [PATCH] app-text/wgetpaste: sync with app-text/wgetpaste-2.33-r5::gentoo Signed-off-by: Alexander Kurakin --- .../files/wgetpaste-2.33-add-A-ansi.patch | 39 ++++ .../wgetpaste-2.33-added-quiet-flag.patch | 10 +- ...ste-2.33-change-arg-parsing-priority.patch | 95 ++++++++++ ...te-2.33-test_ansi-add-A-to-the-tests.patch | 171 ++++++++++++++++++ app-text/wgetpaste/wgetpaste-2.33-r15.ebuild | 57 ++++++ 5 files changed, 367 insertions(+), 5 deletions(-) create mode 100644 app-text/wgetpaste/files/wgetpaste-2.33-add-A-ansi.patch create mode 100644 app-text/wgetpaste/files/wgetpaste-2.33-change-arg-parsing-priority.patch create mode 100644 app-text/wgetpaste/files/wgetpaste-2.33-test_ansi-add-A-to-the-tests.patch create mode 100644 app-text/wgetpaste/wgetpaste-2.33-r15.ebuild diff --git a/app-text/wgetpaste/files/wgetpaste-2.33-add-A-ansi.patch b/app-text/wgetpaste/files/wgetpaste-2.33-add-A-ansi.patch new file mode 100644 index 000000000..e55c8192d --- /dev/null +++ b/app-text/wgetpaste/files/wgetpaste-2.33-add-A-ansi.patch @@ -0,0 +1,39 @@ +From 9614658e6a31bf1b318972008fd9fd1301e9d92f Mon Sep 17 00:00:00 2001 +From: Oskari Pirhonen +Date: Sun, 13 Aug 2023 14:32:34 -0500 +Subject: [PATCH 2/3] Add -A/--ansi + +Don't strip ANSI codes. +--- +See also: https://github.com/zlin/wgetpaste/pull/46 +- Oskari + + wgetpaste | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/wgetpaste b/wgetpaste +index 5f4152d..1e3ae35 100755 +--- a/wgetpaste ++++ b/wgetpaste +@@ -556,6 +556,8 @@ Options: + -X, --xpaste write resulting url to the X primary selection buffer (requires x11-misc/xclip) + -C, --xclippaste write resulting url to the X clipboard selection buffer (requires x11-misc/xclip) + -N, --no-ansi strip ANSI codes such as colors before pasting (requires app-text/ansifilter) ++ -A, --ansi don't strip ANSI codes ++ (useful for undoing NOANSI specified in a config file) + + -r, --raw show url for the raw paste (no syntax highlighting or html) + -t, --tee use tee to show what is being pasted +@@ -789,6 +791,9 @@ while [[ -n $1 ]]; do + -- ) + shift && getfilenames "$@" && break + ;; ++ -A | --ansi ) ++ NOANSI= ++ ;; + -c | --command ) + requiredarg "$@" + SOURCE="command" +-- +2.41.0 + diff --git a/app-text/wgetpaste/files/wgetpaste-2.33-added-quiet-flag.patch b/app-text/wgetpaste/files/wgetpaste-2.33-added-quiet-flag.patch index f8bac315d..b56322430 100644 --- a/app-text/wgetpaste/files/wgetpaste-2.33-added-quiet-flag.patch +++ b/app-text/wgetpaste/files/wgetpaste-2.33-added-quiet-flag.patch @@ -1,4 +1,4 @@ -From 75e68f79adaae7f50920e84a748b7ebb4a3a8a1d Mon Sep 17 00:00:00 2001 +From fa0bd6dd8b7bc21b292e4f94eaa4fbf71d5240f1 Mon Sep 17 00:00:00 2001 From: Richard-Rogalski Date: Mon, 6 Nov 2023 14:00:02 -0600 Subject: [PATCH] Added --quiet flag @@ -26,10 +26,10 @@ index c4703e5..63696ad 100644 '--debug[be very verbose]' \ '(--help -h)'{--help,-h}'[show help and exit]' \ diff --git a/wgetpaste b/wgetpaste -index fc0b559..d016515 100755 +index 1e3ae35..e38f9e5 100755 --- a/wgetpaste +++ b/wgetpaste -@@ -559,6 +559,7 @@ Options: +@@ -561,6 +561,7 @@ Options: -r, --raw show url for the raw paste (no syntax highlighting or html) -t, --tee use tee to show what is being pasted @@ -37,7 +37,7 @@ index fc0b559..d016515 100755 -v, --verbose show wget stderr output if no url is received --completions emit output suitable for shell completions (only affects --list-*) --debug be *very* verbose (implies -v) -@@ -657,7 +658,7 @@ showexpirations() { +@@ -659,7 +660,7 @@ showexpirations() { } showurl() { @@ -46,7 +46,7 @@ index fc0b559..d016515 100755 echo "$1" [[ $XPASTE ]] && x_paste "$1" primary [[ $XCLIPPASTE ]] && x_paste "$1" clipboard -@@ -809,6 +810,9 @@ while [[ -n $1 ]]; do +@@ -841,6 +842,9 @@ while [[ -n $1 ]]; do -N | --no-ansi ) NOANSI=0 ;; diff --git a/app-text/wgetpaste/files/wgetpaste-2.33-change-arg-parsing-priority.patch b/app-text/wgetpaste/files/wgetpaste-2.33-change-arg-parsing-priority.patch new file mode 100644 index 000000000..144d622f1 --- /dev/null +++ b/app-text/wgetpaste/files/wgetpaste-2.33-change-arg-parsing-priority.patch @@ -0,0 +1,95 @@ +From cfe7dcd8a0e40b8c18556aad0b657f431c90505a Mon Sep 17 00:00:00 2001 +From: Oskari Pirhonen +Date: Sun, 13 Aug 2023 14:25:35 -0500 +Subject: [PATCH 1/3] Change arg parsing priority + +Read config files before parsing CLI args. Allows all options to be set +via config and overridden on the CLI. +--- +See also: https://github.com/zlin/wgetpaste/pull/46 +- Oskari + + wgetpaste | 53 ++++++++++++++++++++++++++++------------------------- + 1 file changed, 28 insertions(+), 25 deletions(-) + +diff --git a/wgetpaste b/wgetpaste +index fc0b559..5f4152d 100755 +--- a/wgetpaste ++++ b/wgetpaste +@@ -720,7 +720,32 @@ geturl() { + fi | tail -n1 + } + +-### read cli options ++# read the config files ++load_configs() { ++ if [[ ! $IGNORECONFIGS ]]; then ++ # compatibility code ++ local f deprecated= ++ for f in {/etc/,~/.}wgetpaste{.d/*.bash,}; do ++ if [[ -f $f ]]; then ++ if [[ -z $deprecated ]]; then ++ echo "The config files for wgetpaste have changed to *.conf.$N" >&2 ++ deprecated=0 ++ fi ++ echo "Please move ${f} to ${f%.bash}.conf" >&2 ++ source "$f" || die "Failed to source $f" ++ fi ++ done ++ [[ -n $deprecated ]] && echo >&2 ++ # new locations override old ones in case they collide ++ for f in {/etc/,~/.}wgetpaste{.d/*,}.conf; do ++ if [[ -f $f ]]; then ++ source "$f" || die "Failed to source $f" ++ fi ++ done ++ fi ++} ++ ++### get runtime options + + # separate groups of short options. replace --foo=bar with --foo bar + while [[ -n $1 ]]; do +@@ -756,6 +781,8 @@ done + # set the separated options as input options. + set -- "${ARGS[@]}" + ++load_configs ++ + while [[ -n $1 ]]; do + ((args=1)) + case "$1" in +@@ -859,30 +886,6 @@ if [[ $NOANSI ]]; then + fi + + ### defaults +-load_configs() { +- if [[ ! $IGNORECONFIGS ]]; then +- # compatibility code +- local f deprecated= +- for f in {/etc/,~/.}wgetpaste{.d/*.bash,}; do +- if [[ -f $f ]]; then +- if [[ -z $deprecated ]]; then +- echo "The config files for wgetpaste have changed to *.conf.$N" >&2 +- deprecated=0 +- fi +- echo "Please move ${f} to ${f%.bash}.conf" >&2 +- source "$f" || die "Failed to source $f" +- fi +- done +- [[ -n $deprecated ]] && echo >&2 +- # new locations override old ones in case they collide +- for f in {/etc/,~/.}wgetpaste{.d/*,}.conf; do +- if [[ -f $f ]]; then +- source "$f" || die "Failed to source $f" +- fi +- done +- fi +-} +-load_configs + [[ $SERVICESET ]] && verifyservice "$SERVICESET" && SERVICE=$(escape "$SERVICESET") + DEFAULT_NICK=${DEFAULT_NICK:-$(whoami)} || die "whoami failed" + DEFAULT_SERVICE=${DEFAULT_SERVICE:-bpaste} +-- +2.41.0 + diff --git a/app-text/wgetpaste/files/wgetpaste-2.33-test_ansi-add-A-to-the-tests.patch b/app-text/wgetpaste/files/wgetpaste-2.33-test_ansi-add-A-to-the-tests.patch new file mode 100644 index 000000000..14e8f2f64 --- /dev/null +++ b/app-text/wgetpaste/files/wgetpaste-2.33-test_ansi-add-A-to-the-tests.patch @@ -0,0 +1,171 @@ +From a1c0782e828bc5f0fc8b79d0131f1847c5e7b359 Mon Sep 17 00:00:00 2001 +From: Oskari Pirhonen +Date: Sun, 13 Aug 2023 14:52:20 -0500 +Subject: [PATCH 3/3] test_ansi: add -A to the tests + +--- +See also: https://github.com/zlin/wgetpaste/pull/46 +- Oskari + + test/test_ansi.sh | 92 +++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 81 insertions(+), 11 deletions(-) + +diff --git a/test/test_ansi.sh b/test/test_ansi.sh +index 23b27a8..e1e95f0 100755 +--- a/test/test_ansi.sh ++++ b/test/test_ansi.sh +@@ -94,8 +94,8 @@ fi + + # Paste stuff. Use a short timeout between requests (we're friendly after all!) + sleep 1 +-echo -n "Pasting command output (cat): " +-ERROR_LOG="$DL_DIR/command-error.log" ++echo -n "Pasting command output with ANSI stripping (cat): " ++ERROR_LOG="$DL_DIR/command-noansi-error.log" + URL="$("$TEST_DIR"/../wgetpaste -N -r -s "$WORKING" -v -c "cat $ANSI_FILE" 2>"$ERROR_LOG")" + if [ $? -ne 0 ]; then + echo "FAILED!" +@@ -104,7 +104,7 @@ else + echo "SUCCESS!" + + echo -n "Downloading: " +- if ! (wget -q "$URL" -O "$DL_DIR/command.txt" 2>>"$ERROR_LOG"); then ++ if ! (wget -q "$URL" -O "$DL_DIR/command-noansi.txt" 2>>"$ERROR_LOG"); then + echo "FAILED!" + FAILED_PASTE=$((FAILED_PASTE + 1)) + else +@@ -112,13 +112,35 @@ else + rm "$ERROR_LOG" + + echo "Removing 'command run' header" +- sed -i -e '1d' "$DL_DIR/command.txt" ++ sed -i -e '1d' "$DL_DIR/command-noansi.txt" ++ fi ++fi ++sleep 1 ++echo -n "Pasting command output without ANSI stripping (cat): " ++ERROR_LOG="$DL_DIR/command-ansi-error.log" ++URL="$("$TEST_DIR"/../wgetpaste -A -r -s "$WORKING" -v -c "cat $ANSI_FILE" 2>"$ERROR_LOG")" ++if [ $? -ne 0 ]; then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++else ++ echo "SUCCESS!" ++ ++ echo -n "Downloading: " ++ if ! (wget -q "$URL" -O "$DL_DIR/command-ansi.txt" 2>>"$ERROR_LOG"); then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++ else ++ echo "SUCCESS" ++ rm "$ERROR_LOG" ++ ++ echo "Removing 'command run' header" ++ sed -i -e '1d' "$DL_DIR/command-ansi.txt" + fi + fi + + sleep 1 +-echo -n "Pasting stdin (cat | wgetpaste): " +-ERROR_LOG="$DL_DIR/stdin-error.log" ++echo -n "Pasting stdin with ANSI stripping (cat | wgetpaste): " ++ERROR_LOG="$DL_DIR/stdin-noansi-error.log" + URL="$(cat "$ANSI_FILE" | "$TEST_DIR"/../wgetpaste -N -r -s "$WORKING" -v 2>"$ERROR_LOG")" + if [ $? -ne 0 ]; then + echo "FAILED!" +@@ -127,7 +149,26 @@ else + echo "SUCCESS!" + + echo -n "Downloading: " +- if ! (wget -q "$URL" -O "$DL_DIR/stdin.txt" 2>>"$ERROR_LOG"); then ++ if ! (wget -q "$URL" -O "$DL_DIR/stdin-noansi.txt" 2>>"$ERROR_LOG"); then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++ else ++ echo "SUCCESS!" ++ rm "$ERROR_LOG" ++ fi ++fi ++sleep 1 ++echo -n "Pasting stdin without ANSI stripping (cat | wgetpaste): " ++ERROR_LOG="$DL_DIR/stdin-ansi-error.log" ++URL="$(cat "$ANSI_FILE" | "$TEST_DIR"/../wgetpaste -A -r -s "$WORKING" -v 2>"$ERROR_LOG")" ++if [ $? -ne 0 ]; then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++else ++ echo "SUCCESS!" ++ ++ echo -n "Downloading: " ++ if ! (wget -q "$URL" -O "$DL_DIR/stdin-ansi.txt" 2>>"$ERROR_LOG"); then + echo "FAILED!" + FAILED_PASTE=$((FAILED_PASTE + 1)) + else +@@ -137,8 +178,8 @@ else + fi + + sleep 1 +-echo -n "Pasting a file: " +-ERROR_LOG="$DL_DIR/file-error.log" ++echo -n "Pasting a file with ANSI stripping: " ++ERROR_LOG="$DL_DIR/file-noansi-error.log" + URL="$("$TEST_DIR"/../wgetpaste -N -r -s "$WORKING" -v "$ANSI_FILE" 2>"$ERROR_LOG")" + if [ $? -ne 0 ]; then + echo "FAILED!" +@@ -147,7 +188,26 @@ else + echo "SUCCESS!" + + echo -n "Downloading: " +- if ! (wget -q "$URL" -O "$DL_DIR/file.txt" 2>>"$ERROR_LOG"); then ++ if ! (wget -q "$URL" -O "$DL_DIR/file-noansi.txt" 2>>"$ERROR_LOG"); then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++ else ++ echo "SUCCESS!" ++ rm "$ERROR_LOG" ++ fi ++fi ++sleep 1 ++echo -n "Pasting a file without ANSI stripping: " ++ERROR_LOG="$DL_DIR/file-ansi-error.log" ++URL="$("$TEST_DIR"/../wgetpaste -A -r -s "$WORKING" -v "$ANSI_FILE" 2>"$ERROR_LOG")" ++if [ $? -ne 0 ]; then ++ echo "FAILED!" ++ FAILED_PASTE=$((FAILED_PASTE + 1)) ++else ++ echo "SUCCESS!" ++ ++ echo -n "Downloading: " ++ if ! (wget -q "$URL" -O "$DL_DIR/file-ansi.txt" 2>>"$ERROR_LOG"); then + echo "FAILED!" + FAILED_PASTE=$((FAILED_PASTE + 1)) + else +@@ -157,7 +217,7 @@ else + fi + + # Compare downloaded files +-for dl_file in "$DL_DIR"/*.txt; do ++for dl_file in "$DL_DIR"/*-noansi.txt; do + echo -n "Testing file $dl_file: " + # Ignore missing trailing newline and extra empty lines in downloaded file + if (diff -q -Z -B "$NOANSI_FILE" "$dl_file" &>/dev/null); then +@@ -167,6 +227,16 @@ for dl_file in "$DL_DIR"/*.txt; do + DL_MISMATCH=$((DL_MISMATCH + 1)) + fi + done ++for dl_file in "$DL_DIR"/*-ansi.txt; do ++ echo -n "Testing file $dl_file: " ++ # Ignore missing trailing newline and extra empty lines in downloaded file ++ if (diff -q -Z -B "$ANSI_FILE" "$dl_file" &>/dev/null); then ++ echo "SUCCESS!" ++ else ++ echo "FAILED!" ++ DL_MISMATCH=$((DL_MISMATCH + 1)) ++ fi ++done + + echo "Total failed pastes: $FAILED_PASTE" + echo "Total mismatches: $DL_MISMATCH" +-- +2.41.0 + diff --git a/app-text/wgetpaste/wgetpaste-2.33-r15.ebuild b/app-text/wgetpaste/wgetpaste-2.33-r15.ebuild new file mode 100644 index 000000000..8c8a7707a --- /dev/null +++ b/app-text/wgetpaste/wgetpaste-2.33-r15.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# NOTE: This is a version of `app-text/wgetpaste-2.33-r5::gentoo` with additional services + +EAPI=8 + +inherit optfeature + +DESCRIPTION="Command-line interface to various pastebins" +HOMEPAGE="https://github.com/zlin/wgetpaste" +SRC_URI="https://github.com/zlin/wgetpaste/releases/download/${PV}/${P}.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" +IUSE="+ssl" + +PROPERTIES="test_network" +RESTRICT="test" + +RDEPEND="net-misc/wget[ssl?]" + +PATCHES=( + "${FILESDIR}"/${PN}-2.33-tests.patch + "${FILESDIR}"/${PN}-2.33-disable-sprunge.patch + "${FILESDIR}"/${PN}-2.33-add-paste-gentoo-zip.patch + "${FILESDIR}"/${PN}-2.33-change-arg-parsing-priority.patch + "${FILESDIR}"/${PN}-2.33-add-A-ansi.patch + "${FILESDIR}"/${PN}-2.33-test_ansi-add-A-to-the-tests.patch + "${FILESDIR}"/${PN}-2.33-added-quiet-flag.patch + "${FILESDIR}"/${PN}-2.33-add-paste-calculate.patch + "${FILESDIR}"/${PN}-2.33-add-paste-orgru.patch +) + +src_prepare() { + default + + sed -i -e "s:/etc:\"${EPREFIX}\"/etc:g" wgetpaste || die +} + +src_test() { + test/test.sh || die +} + +src_install() { + dobin ${PN} + insinto /usr/share/zsh/site-functions + doins _wgetpaste + insinto /etc/wgetpaste.d + newins "${FILESDIR}"/wgetpaste-config-services services.conf +} + +pkg_postinst() { + optfeature "ANSI (color code) stripping support" app-text/ansifilter + optfeature "xclip support" x11-misc/xclip +}