From ba070f1ca9b0dd60567a61c0c3cdb287165246be Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Sun, 21 Aug 2022 15:57:29 +0200 Subject: [PATCH] diffpkg: add colored output option with default of auto --- contrib/completion/zsh/_devtools.in | 2 ++ doc/man/diffpkg.1.asciidoc | 3 +++ src/diffpkg.in | 14 +++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/contrib/completion/zsh/_devtools.in b/contrib/completion/zsh/_devtools.in index 84ecf27..46e04fb 100644 --- a/contrib/completion/zsh/_devtools.in +++ b/contrib/completion/zsh/_devtools.in @@ -6,6 +6,7 @@ m4_include(lib/valid-tags.sh) m4_include(lib/valid-repos.sh) _binary_arch=${_arch[*]:0:-1} +_colors=(never always auto) _archbuild_args=( '-c[Recreate the chroot before building]' @@ -49,6 +50,7 @@ _diffpkg_args=( '(-m --makepkg-config)'{-m,--makepkg-config}'[Location of a makepkg config file]:makepkg_config:_files -g "*.conf(.)"' '(-u -U --unified)'{-u,-U,--unified}'[Output 3 lines of unified context]' '(-y --side-by-side)'{-y,--side-by-side}'[Output in two columns]' + '--color=[Color output]:when:($_colors[*])' '(-v --verbose)'{-v,--verbose}'[Provide more detailed/unfiltered output]' '(-h --help)'{-h,--help}'[Display usage]' '*:packages:_devtools_completions_all_packages' diff --git a/doc/man/diffpkg.1.asciidoc b/doc/man/diffpkg.1.asciidoc index 622771a..ec89f89 100644 --- a/doc/man/diffpkg.1.asciidoc +++ b/doc/man/diffpkg.1.asciidoc @@ -39,6 +39,9 @@ Options Output Options -------------- +*--color*[='WHEN']:: + Color output; 'WHEN' is `'never'`, `'always'`, or `'auto'`; Plain *--color* means *--color='auto'* + *-u, -U, --unified*:: Output 3 lines of unified context diff --git a/src/diffpkg.in b/src/diffpkg.in index 243e127..ce8b030 100644 --- a/src/diffpkg.in +++ b/src/diffpkg.in @@ -28,6 +28,8 @@ usage() { -h, --help Show this help text OUTPUT OPTIONS + --color[=WHEN] Color output; WHEN is 'never', 'always', or 'auto'; + Plain --color means --color='auto' -u, -U, --unified Output 3 lines of unified context -y, --side-by-side Output in two columns @@ -47,6 +49,7 @@ PKGINFO=0 BUILDINFO=0 DIFFMODE=--side-by-side +DIFFCOLOR=--color DIFFOPTIONS=(--expand-tabs) # option checking @@ -88,6 +91,15 @@ while (( $# )); do DIFFMODE=--side-by-side shift ;; + --color|--color=*) + if [[ $2 == never || $2 == always || $2 == auto ]]; then + DIFFCOLOR="--color=$2" + shift 2 + continue + fi + DIFFCOLOR="$1" + shift + ;; --) shift break @@ -108,7 +120,7 @@ if (( VERBOSE )); then else DIFFOPTIONS+=(--suppress-common-lines) fi -DIFFOPTIONS+=("${DIFFMODE}") +DIFFOPTIONS+=("${DIFFMODE}" "${DIFFCOLOR}") if ! (( DIFFOSCOPE || TARLIST || PKGINFO || BUILDINFO )); then TARLIST=1