Files

23 lines
872 B
Bash
Executable File

#!/bin/sh
# Fuzzy-known source: surfaces fixes already taught for a command that
# *starts the same way* as this one, since f()'s own p lookup only ever
# matches the exact, literal string.
#
# Matches only against the KEY (left of "="), not the whole line -- an
# earlier version used `grep -F "$first_word " p`, which also matched
# inside a fix's *value*. Proven wrong live: with p containing
# `gti --version=gti(){ command git "$@"; }`, querying "git push" (never
# taught) matched that line anyway, because "git " appears inside the
# value text, not because the key is related.
[ -f p ] || exit 0
cmd="$1"
first_word=$(printf '%s' "$cmd" | awk '{print $1}')
[ -n "$first_word" ] || exit 0
awk -v fw="$first_word " '
substr($0, 1, length(fw)) == fw {
line = $0
sub(/^[^=]*=/, "", line)
if (!seen[line]++) print line
}
' p 2>/dev/null