Browse Source

feat(grc): source `grc.zsh` instead of hard-coding its content (#9553)

Co-authored-by: Marc Cornellà <marc.cornella@live.com>
hjpotter92 3 years ago
parent
commit
0e7c81316c
2 changed files with 14 additions and 63 deletions
  1. 3 25
      plugins/grc/README.md
  2. 11 38
      plugins/grc/grc.plugin.zsh

+ 3 - 25
plugins/grc/README.md

@@ -10,28 +10,6 @@ plugins=(... grc)
 
 ## Commands
 
-The following commands are wrapped by `grc` so that their output is automatically colored:
-
-- `cc`
-- `configure`
-- `cvs`
-- `df`
-- `diff`
-- `dig`
-- `gcc`
-- `gmake`
-- `ifconfig`
-- `iwconfig`
-- `last`
-- `ldap`
-- `make`
-- `mount`
-- `mtr`
-- `netstat`
-- `ping`
-- `ping6`
-- `ps`
-- `traceroute`
-- `traceroute6`
-- `wdiff`
-- `whois`
+The plugin sources the bundled alias generator from the installation, available at `/etc/grc.zsh`.
+The complete list of wrapped commands may vary depending on the installed version of `grc`, look
+at the file mentioned above (`/etc/grc.zsh`) to see which commands are wrapped.

+ 11 - 38
plugins/grc/grc.plugin.zsh

@@ -1,44 +1,17 @@
-# Adapted from: https://github.com/garabik/grc/blob/master/grc.zsh
+#!/usr/bin/env zsh
 
-if [[ "$TERM" = dumb ]] || (( ! $+commands[grc] )); then
-  return
-fi
-
-# Supported commands
-cmds=(
-  cc
-  configure
-  cvs
-  df
-  diff
-  dig
-  gcc
-  gmake
-  ifconfig
-  iwconfig
-  last
-  ldap
-  make
-  mount
-  mtr
-  netstat
-  ping
-  ping6
-  ps
-  traceroute
-  traceroute6
-  wdiff
-  whois
+# common grc.zsh paths
+files=(
+  /etc/grc.zsh            # default
+  /usr/local/etc/grc.zsh  # homebrew
 )
 
-# Set alias for supported commands
-for cmd in $cmds; do
-  if (( $+commands[$cmd] )); then
-    eval "function $cmd {
-      grc --colour=auto \"${commands[$cmd]}\" \"\$@\"
-    }"
+# verify the file is readable and source it
+for file in $files; do
+  if [[ -r "$file" ]]; then
+    source "$file"
+    break
   fi
 done
 
-# Clean up variables
-unset cmds cmd
+unset file files