Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
gitlab.com/pepa65 | e97179376b | |
gitlab.com/pepa65 | 2156390101 |
|
@ -1,6 +1,6 @@
|
||||||
# tldr-bash-client
|
# tldr-bash-client
|
||||||
|
|
||||||
* version 0.6.0
|
* version 0.6.2
|
||||||
|
|
||||||
### Bash client for tldr: community driven man-by-example
|
### Bash client for tldr: community driven man-by-example
|
||||||
**A fully-functional [bash](https://tiswww.case.edu/php/chet/bash/bashtop.html)
|
**A fully-functional [bash](https://tiswww.case.edu/php/chet/bash/bashtop.html)
|
||||||
|
|
39
tldr
39
tldr
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set +vx -o pipefail
|
set +vx -o pipefail
|
||||||
[[ $- = *i* ]] && echo "Don't source this script!" && return 1
|
[[ $- = *i* ]] && echo "Don't source this script!" && return 1
|
||||||
version='0.6.0'
|
version=0.6.2
|
||||||
# tldr-bash-client version 0.6.0
|
# tldr-bash-client v0.6.2
|
||||||
# Bash client for tldr: community driven man-by-example
|
# Bash client for tldr: community driven man-by-example
|
||||||
# - forked from Ray Lee, https://github.com/raylee/tldr
|
# - forked from Ray Lee, https://github.com/raylee/tldr
|
||||||
# - modified and expanded by pepa65: https://gitlab.com/pepa65/tldr-bash-client
|
# - modified and expanded by pepa65: https://gitlab.com/pepa65/tldr-bash-client
|
||||||
|
@ -182,7 +182,7 @@ Init_term(){
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1: page
|
# $1: page
|
||||||
Recent(){ [[ $(find "$1" -mtime -"$TLDR_EXPIRY") ]];}
|
Recent(){ [[ $(find "$1" -mtime -"$TLDR_EXPIRY" 2>/dev/null) ]];}
|
||||||
|
|
||||||
# Initialize globals, check the environment; Uses: config cachedir version
|
# Initialize globals, check the environment; Uses: config cachedir version
|
||||||
# Sets: stdout os version dl pages
|
# Sets: stdout os version dl pages
|
||||||
|
@ -210,8 +210,8 @@ Config(){
|
||||||
ver="tldr-bash-client version $version$XB ${URL}https://gitlab.com/pepa65/tldr-bash-client$XURL"
|
ver="tldr-bash-client version $version$XB ${URL}https://gitlab.com/pepa65/tldr-bash-client$XURL"
|
||||||
|
|
||||||
# Select download method
|
# Select download method
|
||||||
! dl="$(type -P curl) -sLfo" &&
|
! dl="$(type -P curl) --connect-timeout 10 -sLfo" &&
|
||||||
! dl="$(type -P wget) --max-redirect=20 -qNO" &&
|
! dl="$(type -P wget) --timeout=10 --max-redirect=20 -qNO" &&
|
||||||
Err "tldr requires ${I}curl$XI or ${I}wget$XI installed in your path" &&
|
Err "tldr requires ${I}curl$XI or ${I}wget$XI installed in your path" &&
|
||||||
exit 3
|
exit 3
|
||||||
|
|
||||||
|
@ -296,11 +296,11 @@ Get_tldr(){
|
||||||
|
|
||||||
# $1: file (optional); Uses: page stdout; Sets: ln REPLY
|
# $1: file (optional); Uses: page stdout; Sets: ln REPLY
|
||||||
Display_tldr(){
|
Display_tldr(){
|
||||||
local newfmt len val
|
local newfmt len val reply
|
||||||
ln=0 REPLY=
|
ln=0 REPLY=
|
||||||
[[ $md ]] || md=$1
|
[[ $md ]] || md=$1
|
||||||
# Read full lines, and process even when no newline at the end
|
# Read full lines, and process even when no newline at the end
|
||||||
while read -r -d '\x0a' || [[ $REPLY ]]
|
while read -r || [[ $REPLY ]]
|
||||||
do
|
do
|
||||||
((++ln))
|
((++ln))
|
||||||
if ((ln==1))
|
if ((ln==1))
|
||||||
|
@ -325,10 +325,9 @@ Display_tldr(){
|
||||||
[[ ! ${REPLY:1:1} = ' ' ]] && Unlinted "2nd character no space"
|
[[ ! ${REPLY:1:1} = ' ' ]] && Unlinted "2nd character no space"
|
||||||
Out "$TNL$TSP$T${REPLY:2}$XT" ;;
|
Out "$TNL$TSP$T${REPLY:2}$XT" ;;
|
||||||
'>') ((${#REPLY} <= 3)) && Unlinted "No valid desciption"
|
'>') ((${#REPLY} <= 3)) && Unlinted "No valid desciption"
|
||||||
echo "$REPLY"
|
|
||||||
[[ ! ${REPLY:1:1} = ' ' ]] && Unlinted "2nd character no space"
|
[[ ! ${REPLY:1:1} = ' ' ]] && Unlinted "2nd character no space"
|
||||||
echo "${REPLY: -1}" |hexdump -C
|
reply=${REPLY//$'\n'}
|
||||||
[[ ! ${REPLY: -1} = '.' && ! ${REPLY: -1} = '。' ]] && Unlinted "Description doesn't end in full stop"
|
[[ ! ${reply: -1} = '.' && ! ${reply: -1} = '。' ]] && Unlinted "Description doesn't end in full stop"
|
||||||
Out "$DNL$DSP$D${REPLY:2}$XD"
|
Out "$DNL$DSP$D${REPLY:2}$XD"
|
||||||
DNL= ;;
|
DNL= ;;
|
||||||
'-') ((newfmt)) && Unlinted "Bad first character"
|
'-') ((newfmt)) && Unlinted "Bad first character"
|
||||||
|
@ -357,7 +356,7 @@ echo "${REPLY: -1}" |hexdump -C
|
||||||
Out "$ENL$ESP$E$REPLY$XE" ;;
|
Out "$ENL$ESP$E$REPLY$XE" ;;
|
||||||
esac
|
esac
|
||||||
done <"$1"
|
done <"$1"
|
||||||
[[ $TLDR_LESS = 0 ]] &&
|
[[ $TLDR_LESS = 0 ]] &&
|
||||||
trap 'cat <<<"$stdout"' EXIT ||
|
trap 'cat <<<"$stdout"' EXIT ||
|
||||||
trap 'less -Gg -~RXQFP"%pB\% tldr $I$page$XI - browse up/down, press Q to exit" <<<"$stdout"' EXIT
|
trap 'less -Gg -~RXQFP"%pB\% tldr $I$page$XI - browse up/down, press Q to exit" <<<"$stdout"' EXIT
|
||||||
}
|
}
|
||||||
|
@ -493,9 +492,21 @@ Main(){
|
||||||
Usage 27
|
Usage 27
|
||||||
[[ $platform = all ]] && platform=
|
[[ $platform = all ]] && platform=
|
||||||
Get_tldr "${page// /-}"
|
Get_tldr "${page// /-}"
|
||||||
[[ ! -s $cached ]] && Err "tldr page for command $I$page$XI not found" \
|
if [[ -s $cached ]]
|
||||||
&& Inf "Contribute new pages at:$XB ${URL}https://github.com/tldr-pages/tldr$XURL" && exit 28
|
then # File present
|
||||||
((markdown)) && Out "$(cat "$cached")" || Display_tldr "$cached"
|
((markdown)) && Out "$(cat "$cached")" || Display_tldr "$cached"
|
||||||
|
elif [[ ! $lang = en ]]
|
||||||
|
then # Not English and no file
|
||||||
|
pages=pages
|
||||||
|
Get_tldr "${page// /-}"
|
||||||
|
[[ -s $cached ]] &&
|
||||||
|
Err "tldr page for command $I$page$XI not found in '$lang' but found in English" &&
|
||||||
|
((markdown)) && Out "$(cat "$cached")" ||
|
||||||
|
Display_tldr "$cached"
|
||||||
|
else # Just not found
|
||||||
|
Err "tldr page for command $I$page$XI not found" &&
|
||||||
|
Inf "Contribute new pages at:$XB ${URL}https://github.com/tldr-pages/tldr$XURL" && exit 28
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
export LC_ALL=en_US.UTF-8
|
export LC_ALL=en_US.UTF-8
|
||||||
|
|
Loading…
Reference in New Issue