mirror of
https://github.com/erkin/ponysay
synced 2024-11-23 11:53:14 +00:00
Merge branch 'develop'
This commit is contained in:
commit
e3872aed44
8 changed files with 88 additions and 31 deletions
|
@ -16,6 +16,8 @@ Version 2.9
|
|||
|
||||
If file descriptor 3 is definied when ponysay is executed, extra information is printed to it.
|
||||
|
||||
Arguments starting with n or i is allowed for -W.
|
||||
|
||||
|
||||
Version 2.8
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ _ponysay()
|
|||
|
||||
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
|
||||
cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
|
||||
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 )
|
||||
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 none inherit )
|
||||
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# FISH completions for ponysay
|
||||
# https://github.com/erkin/ponysay/
|
||||
#
|
||||
# fish completion for ponysay -*- shell-script -*-
|
||||
# Author: Elis Axelsson <etu AT elis DOT nu>
|
||||
|
||||
set -g ponies ('/usr/bin/ponysay' --onelist)
|
||||
|
@ -19,7 +17,7 @@ complete --command ponysay --short-option f --long-option pony --argument
|
|||
complete --command ponysay --short-option F --arguments "$xponies" --description 'extra pony'
|
||||
complete --command ponysay --short-option q --long-option quote --arguments "$quoters" --no-files --description 'pony'
|
||||
complete --command ponysay --short-option b --long-option balloon --arguments "$balloons" --no-files --description 'balloon style'
|
||||
complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped'
|
||||
complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped' ## TODO arguments `none` and `inherit` should be suggested
|
||||
complete --command ponysay --arguments 'MESSAGE'
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# zsh completion for ponysay -*- shell-script -*-
|
||||
#compdef ponysay ponythink
|
||||
_opts=(
|
||||
'(--version -v)'{-v,--version}'[Show version and exit]'
|
||||
|
@ -9,7 +10,7 @@ _opts=(
|
|||
'(-B --balloonlist)'{-B,--balloonlist}'[list balloon style names]'
|
||||
'(-b --ballon)'{-b,--balloon}'[Selecy a balloon style]: :_path_files -W '/usr/share/ponysay/balloons' -g "*(\:r)"'
|
||||
'(-c --compact)'{-c,--compat}'[Compress messages.]'
|
||||
'(-W --wrap)'{-W,--wrap}'[The screen column where the message should be wrapped]'
|
||||
'(-W --wrap)'{-W,--wrap}'[The screen column where the message should be wrapped]' # TODO arguments `none` and `inherit` should be suggested
|
||||
)
|
||||
_tty_select=(
|
||||
'(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"'
|
||||
|
|
|
@ -80,7 +80,9 @@ is added as an argument to \fI-q\fP. If one or more ponies are added as an argum
|
|||
to \fI-q\fP the pony will be selected randomly from that set of ponies.
|
||||
.TP
|
||||
.B \-W, \-\-wrap \fIcolumn\fP
|
||||
The screen column where the message should be wrapped.
|
||||
The screen column where the message should be wrapped, the balloon's extra width is taken
|
||||
into consideration. If the argument is not a number, but starts instead with \fIn\fP,
|
||||
no wrapping is done, and if it starts with \fIi\fP the width of the terminal is used.
|
||||
.TP
|
||||
.B \-A, \-\-all
|
||||
List all pony files, MLP-FiM and non-MLP-FiM, in this case the first list are MLP:FiM
|
||||
|
|
|
@ -82,7 +82,9 @@ uno o varios ponis sean agregados tras la opción \fI-q\fP, en cuyo caso se sele
|
|||
aleatoriamente uno de este conjunto.
|
||||
.TP
|
||||
.B \-W, \-\-wrap \fIcolumna\fP
|
||||
El numero de columnas en el que será impreso el mensaje.
|
||||
La columna donde el mensage será truncado, el globo puede tomar en consideración un largo mayor
|
||||
si el argumento no es un numero, pero si inicia con \fIn\fP , no hay contenido y si es \fIi\fP
|
||||
el largo de la terminal es usado es su lugar.
|
||||
.TP
|
||||
.B \-A. \-\-all
|
||||
Lista todos los ponis, tanto pertenecientes a MLP:FiM cono no pertenecientes a esta
|
||||
|
|
|
@ -216,6 +216,9 @@ Variadic variant of @option{-F}, meaning that all arguments added after this one
|
|||
will parsed as an argument to this option. Additionally, those options are added
|
||||
to @option{-F}.
|
||||
|
||||
An important feature of this options, is that you can but it in the end of the
|
||||
command line, without any argument to get a random non-MLP:FiM pony.
|
||||
|
||||
@item --q [PONY...]
|
||||
@itemx --quotes [PONY...]
|
||||
@opindex @option{--q}
|
||||
|
@ -245,7 +248,16 @@ balloon style is specified a fallback style will be used.
|
|||
@opindex @option{-W}
|
||||
@opindex @option{--wrap}
|
||||
Specify the screen column where the message should be wrapped, this is by default 40,
|
||||
as with @command{cowsay}.
|
||||
as with @command{cowsay}. The balloon's extra width is taken into consideration.
|
||||
|
||||
If the argument is not a number, but starts instead with @code{n} (for ‘none’ or
|
||||
‘no’), no wrapping is done, and if it starts with @code{i} (for ‘inherit’) the width
|
||||
of the terminal is used.
|
||||
|
||||
@code{n} and @code{i} is case insensitive, so you may use @code{N} and @code{I}
|
||||
instead. Additionally, typo correction is for QWERTY and Dvorak is built in to
|
||||
@command{ponysay}; the nearest key, either to the left or to the right, depending
|
||||
on which hand is used to press the key, is also allowed.
|
||||
|
||||
@item -c
|
||||
@itemx --compress
|
||||
|
@ -1337,9 +1349,12 @@ before building and installing.
|
|||
|
||||
@menu
|
||||
* Arch Linux:: Packages for Arch Linux.
|
||||
* Arch Linux ARM:: Packages for Arch Linux ARM.
|
||||
* Chakra:: Packages for Chakra.
|
||||
* Gentoo Linux:: Packages for Gentoo Linux.
|
||||
* Debian GNU/Linux:: Packages for Debian GNU/Linux and Ubuntu.
|
||||
* Gentoo Linux:: Packages for Gentoo Linux.
|
||||
* Parabola GNU/Linux:: Packages for Parabola GNU/Linux.
|
||||
* Source Mage GNU/Linux:: Packages for Source Mage GNU/Linux.
|
||||
@end menu
|
||||
|
||||
|
||||
|
@ -1348,24 +1363,26 @@ before building and installing.
|
|||
@cindex arch linux
|
||||
|
||||
The official Arch Linux package repositories contains @command{ponysay} as
|
||||
@w{@code{community/ponysay}}. The Arch Linux User Repository (AUR) contains a
|
||||
bleeding edge git version of @command{ponysay} as @code{ponysay-git}.
|
||||
@w{@code{community/ponysay}} (developer maintained). The Arch Linux User Repository
|
||||
(AUR) contains a bleeding edge git version of @command{ponysay} as
|
||||
@w{@code{ponysay-git}} (user maintained).
|
||||
|
||||
|
||||
@node Arch Linux ARM
|
||||
@subsection Arch Linux ARM
|
||||
@cindex arch linux arm
|
||||
|
||||
@w{@code{community/ponysay}} from Arch Linux (@ref{Arch Linux}) is also available
|
||||
for Arch Linux ARM.
|
||||
|
||||
|
||||
@node Chakra
|
||||
@subsection Chakra
|
||||
@cindex chakra
|
||||
|
||||
Chakra users can install from (CCR) a stable version named a @code{ponysay},
|
||||
additionally a git verion of ponysay is available as @code{ponysay-git}.
|
||||
|
||||
|
||||
@node Gentoo Linux
|
||||
@subsection Gentoo Linux
|
||||
@cindex gentoo linux
|
||||
|
||||
Gentoo users can use the overlay @url{https://github.com/etu/aidstu-overlay}, which
|
||||
contains @command{ponysay} as @w{@code{games-misc/ponysay}}.
|
||||
Chakra users can install from (CCR) a stable version named a @code{ponysay}
|
||||
(developer maintained Arch Linux mirror), additionally a git verion of ponysay is
|
||||
available as @code{ponysay-git} (developer maintained Arch Linux mirror).
|
||||
|
||||
|
||||
@node Debian GNU/Linux
|
||||
|
@ -1373,9 +1390,34 @@ contains @command{ponysay} as @w{@code{games-misc/ponysay}}.
|
|||
@cindex debian gnu/linux
|
||||
@cindex ubuntu
|
||||
|
||||
A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay},
|
||||
and PPA:s can be found at @url{https://launchpad.net/~vincent-c/+archive/ppa} and
|
||||
@url{https://launchpad.net/~blazemore/+archive/ponysay}.
|
||||
A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay}
|
||||
(user maintained), and PPA:s can be found at
|
||||
@url{https://launchpad.net/~vincent-c/+archive/ppa} (user maintained) and
|
||||
@url{https://launchpad.net/~blazemore/+archive/ponysay} (user maintained).
|
||||
|
||||
|
||||
@node Gentoo Linux
|
||||
@subsection Gentoo Linux
|
||||
@cindex gentoo linux
|
||||
|
||||
Gentoo users can use the overlay @url{https://github.com/etu/aidstu-overlay}, which
|
||||
contains @command{ponysay} as @w{@code{games-misc/ponysay}} (developer maintained).
|
||||
|
||||
|
||||
@node Parabola GNU/Linux
|
||||
@subsection Parabola GNU/Linux
|
||||
@cindex parabola gnu/linux
|
||||
|
||||
@w{@code{community/ponysay}} from Arch Linux (@ref{Arch Linux}) is also available
|
||||
for Parabola GNU/Linux.
|
||||
|
||||
|
||||
@node Source Mage GNU/Linux
|
||||
@subsection Source Mage GNU/Linux
|
||||
@cindex source mage gnu/linux
|
||||
|
||||
The spell @w{@code{util/ponysay}} (user maintained) is available in Grimoire for
|
||||
Source Mage @w{GNU/Linux}.
|
||||
|
||||
|
||||
@node Uninstalling
|
||||
|
@ -2022,6 +2064,8 @@ than unlimited. Currently this cannot be modified (without editing the source co
|
|||
@item
|
||||
If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
|
||||
printed to it.
|
||||
@item
|
||||
Arguments starting with @code{n} or @code{i} is allowed for @option{-W}.
|
||||
@end itemize
|
||||
|
||||
|
||||
|
|
20
ponysay.py
20
ponysay.py
|
@ -319,13 +319,13 @@ class Ponysay():
|
|||
ponies[pony] = ponydir + ponyfile
|
||||
|
||||
## Support for explicit pony file names
|
||||
if not names == None:
|
||||
if names is not None:
|
||||
for name in names:
|
||||
if os.path.exists(name):
|
||||
ponies[name] = name
|
||||
|
||||
## If there is not select ponies, choose all of them
|
||||
if names == None:
|
||||
if (names is None) or (len(names) == 0):
|
||||
names = list(ponies.keys())
|
||||
|
||||
## Select a random pony of the choosen onles
|
||||
|
@ -806,11 +806,19 @@ class Ponysay():
|
|||
if linuxvt:
|
||||
print('\033[H\033[2J', end='')
|
||||
|
||||
## Width Get truncation and wrapping
|
||||
## Get width truncation and wrapping
|
||||
env_width = os.environ['PONYSAY_FULL_WIDTH'] if 'PONYSAY_FULL_WIDTH' in os.environ else None
|
||||
if env_width is None: env_width = ''
|
||||
widthtruncation = self.__gettermsize()[1] if env_width not in ('yes', 'y', '1') else None
|
||||
messagewrap = int(args.opts['-W'][0]) if args.opts['-W'] is not None else None
|
||||
messagewrap = 40
|
||||
if (args.opts['-W'] is not None) and (len(args.opts['-W'][0]) > 0):
|
||||
messagewrap = args.opts['-W'][0]
|
||||
if messagewrap[0] in 'nmsNMS': # m is left to n on QWERTY and s is left to n on Dvorak
|
||||
messagewrap = None
|
||||
elif messagewrap[0] in 'iouIOU': # o is left to i on QWERTY and u is right to i on Dvorak
|
||||
messagewrap = self.__gettermsize()[1]
|
||||
else:
|
||||
messagewrap = int(args.opts['-W'][0])
|
||||
|
||||
## Get balloon object
|
||||
balloonfile = self.__getballoonpath(args.opts['-b'])
|
||||
|
@ -833,8 +841,8 @@ class Ponysay():
|
|||
|
||||
|
||||
## Run cowsay replacement
|
||||
backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap if messagewrap is not None else 40,
|
||||
width = widthtruncation, balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
|
||||
backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap, width = widthtruncation,
|
||||
balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
|
||||
backend.parse()
|
||||
output = backend.output
|
||||
if output.endswith('\n'):
|
||||
|
|
Loading…
Reference in a new issue