Add fallback to tac (#108)

Fix #107
This commit is contained in:
Denis Isidoro 2019-10-03 12:56:36 -03:00 committed by GitHub
parent 4792621b8c
commit 78638c67e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 28 additions and 15 deletions

2
navi
View File

@ -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 "$@"

View File

@ -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"
}

View File

@ -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

View File

@ -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() {

View File

@ -46,7 +46,7 @@ coll::add() {
}
coll::reverse() {
tac
str::reverse_lines "$@"
}
coll::set() {

View File

@ -29,7 +29,7 @@ selection::cmd_or_comment() {
else
echo "$cheat" \
| grep "^${core}$" -B999 \
| tac \
| str::reverse_lines \
| str::last_paragraph_line
fi
}

View File

@ -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
}

View File

@ -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"

View File

@ -2,7 +2,7 @@
existing() {
platform::existing_command oasida fngo ni awk aoisdn oafm \
| test::equals awk
| test::equals awk
}
test::set_suite "platform"