diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | manpage.1 | 21 | ||||
-rwxr-xr-x | ponysay | 20 |
3 files changed, 35 insertions, 8 deletions
@@ -26,6 +26,7 @@ install: all mkdir -p "$(DESTDIR)/usr/share/man/man1" install "manpage.1" "$(DESTDIR)/usr/share/man/man1/ponysay.1" + ln -sf "ponysay.1" "$(DESTDIR)/usr/share/man/man1/ponythink.1" uninstall: rm -fr "$(DESTDIR)/usr/share/ponysay/ponies" @@ -37,6 +38,7 @@ uninstall: unlink "$(DESTDIR)/usr/share/licenses/ponysay/COPYING" unlink "$(DESTDIR)/usr/share/bash-completion/completions/ponysay" unlink "$(DESTDIR)/usr/share/man/man1/ponysay.1" + unlink "$(DESTDIR)/usr/share/man/man1/ponythink.1" clean: rm -r "ponysaytruncater" @@ -22,6 +22,10 @@ ponysay \- A cowsay wrapper with ponies .RI [ options ] .RI [ message ] .br +.B ponythink +.RI [ options ] +.RI [ message ] +.br .SH DESCRIPTION .PP .\" TeX users may be more comfortable with the \fB<whatever>\fP and @@ -33,6 +37,8 @@ word-wraps the message given at about 40 columns, and prints the pony saying the .PP If no arguments are provided, the program only accepts standard input piped from another program, a file or either here documents or here strings (see man bash(1) for details on here document/string.) +.PP +\fBponythink\fP is to \fIponysay\fP as \fIcowthink\fP is to \fIcowsay\fP. .SH OPTIONS A summary of options is included below. .TP @@ -54,8 +60,19 @@ The screen column where the message should be wrapped .TP .B PONYSAY_BOTTOM Under TTY (Linux VT), if the output is larger the the screen's height, only the beginning is -printed, leaving 2 blank lines. If you want the buttom to be printed rather the the beginning +printed, leaving two blank lines. If you want the buttom to be printed rather the the beginning you can export \fBPONYSAY_BOTTOM\fP with the value \fIyes\fP, \fIy\fP or \fI1\fP. +.B PONYSAY_SHELL_LINES +Under TTY (Linux VT), if the output is larger the the screen's height, two lines are left blank. +If you want moer, or less, blank lines you can export \fBPONYSAY_SHELL_LINES\fP with the value +of how many blank lines you want. Naturally this takes effect if the output is not actually larger +than the screen. +.B PONYSAY_FULL_WIDTH +You can export \fBPONYSAY_FULL_WIDTH\fP with the value \fIno\fP, \fIn\fP or \fI0\fP, if you +do not want the output to be truncated on the width to fit the terminal. +.B PONYSAY_TRUNCATE_HEIGHT +Export \fBPONYSAY_TRUNCATE_HEIGHT\fP with the value \fIyes\fP, \fIy\fP or \fI1\fP, if you +want to truncate the output on the height even if you are not running \fIponysay\fP under TTY. .SH BUG Bugs can be reported in <\fBhttps://github.com/erkin/ponysay/issues\fP>. .SH SEE ALSO @@ -86,4 +103,4 @@ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE .br TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION .PP - 0. You just DO WHAT THE FUCK YOU WANT TO. +0. You just DO WHAT THE FUCK YOU WANT TO. @@ -63,18 +63,26 @@ say() { function wtrunc { - ponysaytruncater `tput cols || echo 0` 2>/dev/null || - ${HOME}/.local/bin/ponysaytruncater `tput cols || echo 0` 2>/dev/null || - ./ponysaytruncater `tput cols || echo 0` 2>/dev/null || - cat + if [ "$PONYSAY_FULL_WIDTH" = 'no' ] || [ "$PONYSAY_FULL_WIDTH" = 'n' ] || [ "$PONYSAY_FULL_WIDTH" = '0' ]; then + cat + else + WIDTH=$((stty size <&2 || echo 0 0) | cut -d ' ' -f 2) + ponysaytruncater $WIDTH 2>/dev/null || + ${HOME}/.local/bin/ponysaytruncater $WIDTH 2>/dev/null || + ./ponysaytruncater $WIDTH 2>/dev/null || + cat + fi } function htrunc { - head --lines=$(( $(stty size <&2 | cut -d ' ' -f 1) - 2 )) + if [ "$PONYSAY_SHELL_LINES" = "" ]; then + PONYSAY_SHELL_LINES=2 + fi + head --lines=$(( $(stty size <&2 | cut -d ' ' -f 1) - $PONYSAY_SHELL_LINES )) } - if [ "$TERM" = "linux" ]; then + if [ "$TERM" = "linux" ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'yes' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'y' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = '1' ]; then if [ "$PONYSAY_BOTTOM" = 'yes' ] || [ "$PONYSAY_BOTTOM" = 'y' ] || [ "$PONYSAY_BOTTOM" = '1' ]; then exec "$cmd" -f "$pony" "${wrap:+-W$wrap}" | wtrunc | tac | htrunc | tac else |