Skip to content

Commit

Permalink
Add fallback to tac (denisidoro#108)
Browse files Browse the repository at this point in the history
  • Loading branch information
denisidoro authored Oct 3, 2019
1 parent 4792621 commit 78638c6
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 15 deletions.
2 changes: 1 addition & 1 deletion navi
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ source "${SCRIPT_DIR}/src/main.sh"
##? full docs
##? Please refer to the README at https://github.com/denisidoro/navi

VERSION="0.11.0"
VERSION="0.11.1"
NAVI_ENV="${NAVI_ENV:-prod}"

opts::eval "$@"
Expand Down
1 change: 0 additions & 1 deletion scripts/lint
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ export SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
files_to_lint() {
find . -iname '*.sh'
find scripts/*
find shell/*
echo "${SCRIPT_DIR}/test/run"
echo "${SCRIPT_DIR}/navi"
}
Expand Down
6 changes: 5 additions & 1 deletion src/arg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,12 @@ arg::next() {

arg::deserialize() {
local arg="$1"

arg="${arg:1:${#arg}-2}"
echo "$arg" | tr "${ARG_DELIMITER}" " " | tr "${ARG_DELIMITER_2}" "'" | tr "${ARG_DELIMITER_3}" '"'
echo "$arg" \
| tr "${ARG_DELIMITER}" " " \
| tr "${ARG_DELIMITER_2}" "'" \
| tr "${ARG_DELIMITER_3}" '"'
}

# TODO: separation of concerns
Expand Down
8 changes: 4 additions & 4 deletions src/cheat.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ cheat::pretty() {
/^%/ { tags=" ["substr($0, 3)"]"; next }
/^#/ { print color(4, $0) color(60, tags); next }
/^\$/ { next }
NF { print color(7, $0) color(60, tags); next }'
NF { print color(7, $0) color(60, tags); next }'
}

cheat::_until_percentage() {
awk 'BEGIN { count=0; }
/^%/ { if (count >= 1) exit;
else { count++; print $0; next; } }
{ print $0 }'
/^%/ { if (count >= 1) exit;
else { count++; print $0; next; } }
{ print $0 }'
}

cheat::from_selection() {
Expand Down
2 changes: 1 addition & 1 deletion src/coll.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ coll::add() {
}

coll::reverse() {
tac
str::reverse_lines "$@"
}

coll::set() {
Expand Down
2 changes: 1 addition & 1 deletion src/selection.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ selection::cmd_or_comment() {
else
echo "$cheat" \
| grep "^${core}$" -B999 \
| tac \
| str::reverse_lines \
| str::last_paragraph_line
fi
}
Expand Down
10 changes: 10 additions & 0 deletions src/str.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,13 @@ str::index_last_occurrence() {

awk 'BEGIN{FS=""}{ for(i=1;i<=NF;i++){ if($i=="'"$char"'"){ p=i } }}END{ print p }'
}

str::reverse_lines() {
if command_exists tac; then
tac
elif command_exists perl; then
perl -e 'print reverse <>'
else
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }'
fi
}
10 changes: 5 additions & 5 deletions test/arg_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

interpolation_one_word() {
echo "curl http://mysite.com/<user>/profile" \
| arg::interpolate "user" "john" \
| test::equals "curl http://mysite.com/john/profile"
| arg::interpolate "user" "john" \
| test::equals "curl http://mysite.com/john/profile"
}

interpolation_multiple_words() {
echo "cp <file> <new_file>" \
| arg::interpolate "file" "C:/Program Files/app/foo.exe" \
| arg::interpolate "new_file" "/mnt/c/Users/john/foo.exe" \
| test::equals 'cp "C:/Program Files/app/foo.exe" /mnt/c/Users/john/foo.exe'
| arg::interpolate "file" "C:/Program Files/app/foo.exe" \
| arg::interpolate "new_file" "/mnt/c/Users/john/foo.exe" \
| test::equals 'cp "C:/Program Files/app/foo.exe" /mnt/c/Users/john/foo.exe'
}

test::set_suite "arg"
Expand Down
2 changes: 1 addition & 1 deletion test/platform_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

existing() {
platform::existing_command oasida fngo ni awk aoisdn oafm \
| test::equals awk
| test::equals awk
}

test::set_suite "platform"
Expand Down

0 comments on commit 78638c6

Please sign in to comment.