aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--manpage.126
-rwxr-xr-xponysay20
3 files changed, 39 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index fe9b631..e9c3279 100644
--- a/Makefile
+++ b/Makefile
@@ -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"
diff --git a/manpage.1 b/manpage.1
index d5b8ec9..e35603f 100644
--- a/manpage.1
+++ b/manpage.1
@@ -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,22 @@ 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
-you can export \fBPONYSAY_BOTTOM\fP with the value \fIyes\fP, \fIy\fP or \fI1\fP.
+printed, leaving two blank lines. If you want the buttom to be printed rather the the beginning
+you can export \fIPONYSAY_BOTTOM\fP with the value \fIyes\fP, \fIy\fP or \fI1\fP.
+.TP
+.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 more, or less, blank lines you can export \fIPONYSAY_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.
+.TP
+.B PONYSAY_FULL_WIDTH
+You can export \fIPONYSAY_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.
+.TP
+.B PONYSAY_TRUNCATE_HEIGHT
+Export \fIPONYSAY_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 +106,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.
diff --git a/ponysay b/ponysay
index 2f60ab3..e50b0b1 100755
--- a/ponysay
+++ b/ponysay
@@ -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