Skip to content

Commit 72bbf69

Browse files
committed
Pick a git flavor and assign it to $_Z_AWK
1 parent 9e41a50 commit 72bbf69

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

z.sh

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,18 @@
2323
# * z -l foo # list matches instead of cd
2424
# * z -c foo # restrict matches to subdirs of $PWD
2525

26-
case $(uname -a) in
27-
SunOS*) awk() { nawk "$@"; } ;;
28-
esac
29-
3026
[ -d "${_Z_DATA:-$HOME/.z}" ] && {
3127
echo "ERROR: z.sh's datafile (${_Z_DATA:-$HOME/.z}) is a directory."
3228
}
3329

30+
_z_pick_awk_flavor() {
31+
if [ -z "$_Z_AWK" ]; then
32+
local awk; for awk in mawk gawk original-awk nawk awk; do
33+
command -v $awk > /dev/null 2>&1 && _Z_AWK=$awk && break
34+
done
35+
fi
36+
}
37+
3438
_z() {
3539

3640
local datafile="${_Z_DATA:-$HOME/.z}"
@@ -65,7 +69,7 @@ _z() {
6569

6670
# maintain the data file
6771
local tempfile="$datafile.$RANDOM"
68-
_z_dirs | awk -v path="$*" -v now="$(date +%s)" -F"|" '
72+
_z_dirs | $_Z_AWK -v path="$*" -v now="$(date +%s)" -F"|" '
6973
BEGIN {
7074
rank[path] = 1
7175
time[path] = now
@@ -98,7 +102,7 @@ _z() {
98102

99103
# tab completion
100104
elif [ "$1" = "--complete" -a -s "$datafile" ]; then
101-
_z_dirs | awk -v q="$2" -F"|" '
105+
_z_dirs | $_Z_AWK -v q="$2" -F"|" '
102106
BEGIN {
103107
q = substr(q, 3)
104108
if( q == tolower(q) ) imatch = 1
@@ -138,7 +142,7 @@ _z() {
138142
[ -f "$datafile" ] || return
139143

140144
local cd
141-
cd="$( < <( _z_dirs ) awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -F"|" '
145+
cd="$( < <( _z_dirs ) $_Z_AWK -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -F"|" '
142146
function frecent(rank, time) {
143147
# relate frequency and time
144148
dx = t - time
@@ -214,6 +218,8 @@ _z() {
214218
fi
215219
}
216220

221+
_z_pick_awk_flavor
222+
217223
alias ${_Z_CMD:-z}='_z 2>&1'
218224

219225
[ "$_Z_NO_RESOLVE_SYMLINKS" ] || _Z_RESOLVE_SYMLINKS="-P"

0 commit comments

Comments
 (0)