summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevente Polyak <anthraxx@archlinux.org>2022-08-21 15:57:29 +0200
committerLevente Polyak <anthraxx@archlinux.org>2022-08-23 20:23:51 +0200
commitba070f1ca9b0dd60567a61c0c3cdb287165246be (patch)
treeebe9b68e37d62bd080c06d7d026b322de40a24e5
parentb9dadc55760642ac4e8ac9766cf832cc38015923 (diff)
downloaddevtools-ba070f1ca9b0dd60567a61c0c3cdb287165246be.tar.xz
diffpkg: add colored output option with default of auto
-rw-r--r--contrib/completion/zsh/_devtools.in2
-rw-r--r--doc/man/diffpkg.1.asciidoc3
-rw-r--r--src/diffpkg.in14
3 files changed, 18 insertions, 1 deletions
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