mirror of
https://github.com/erkin/ponysay
synced 2024-11-27 13:50:52 +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.
|
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
|
Version 2.8
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ _ponysay()
|
||||||
|
|
||||||
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
|
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
|
||||||
cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
|
cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
|
||||||
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 )
|
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 none inherit )
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# FISH completions for ponysay
|
# fish completion for ponysay -*- shell-script -*-
|
||||||
# https://github.com/erkin/ponysay/
|
|
||||||
#
|
|
||||||
# Author: Elis Axelsson <etu AT elis DOT nu>
|
# Author: Elis Axelsson <etu AT elis DOT nu>
|
||||||
|
|
||||||
set -g ponies ('/usr/bin/ponysay' --onelist)
|
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 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 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 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'
|
complete --command ponysay --arguments 'MESSAGE'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# zsh completion for ponysay -*- shell-script -*-
|
||||||
#compdef ponysay ponythink
|
#compdef ponysay ponythink
|
||||||
_opts=(
|
_opts=(
|
||||||
'(--version -v)'{-v,--version}'[Show version and exit]'
|
'(--version -v)'{-v,--version}'[Show version and exit]'
|
||||||
|
@ -9,7 +10,7 @@ _opts=(
|
||||||
'(-B --balloonlist)'{-B,--balloonlist}'[list balloon style names]'
|
'(-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)"'
|
'(-b --ballon)'{-b,--balloon}'[Selecy a balloon style]: :_path_files -W '/usr/share/ponysay/balloons' -g "*(\:r)"'
|
||||||
'(-c --compact)'{-c,--compat}'[Compress messages.]'
|
'(-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=(
|
_tty_select=(
|
||||||
'(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"'
|
'(-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.
|
to \fI-q\fP the pony will be selected randomly from that set of ponies.
|
||||||
.TP
|
.TP
|
||||||
.B \-W, \-\-wrap \fIcolumn\fP
|
.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
|
.TP
|
||||||
.B \-A, \-\-all
|
.B \-A, \-\-all
|
||||||
List all pony files, MLP-FiM and non-MLP-FiM, in this case the first list are MLP:FiM
|
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.
|
aleatoriamente uno de este conjunto.
|
||||||
.TP
|
.TP
|
||||||
.B \-W, \-\-wrap \fIcolumna\fP
|
.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
|
.TP
|
||||||
.B \-A. \-\-all
|
.B \-A. \-\-all
|
||||||
Lista todos los ponis, tanto pertenecientes a MLP:FiM cono no pertenecientes a esta
|
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
|
will parsed as an argument to this option. Additionally, those options are added
|
||||||
to @option{-F}.
|
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...]
|
@item --q [PONY...]
|
||||||
@itemx --quotes [PONY...]
|
@itemx --quotes [PONY...]
|
||||||
@opindex @option{--q}
|
@opindex @option{--q}
|
||||||
|
@ -245,7 +248,16 @@ balloon style is specified a fallback style will be used.
|
||||||
@opindex @option{-W}
|
@opindex @option{-W}
|
||||||
@opindex @option{--wrap}
|
@opindex @option{--wrap}
|
||||||
Specify the screen column where the message should be wrapped, this is by default 40,
|
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
|
@item -c
|
||||||
@itemx --compress
|
@itemx --compress
|
||||||
|
@ -1337,9 +1349,12 @@ before building and installing.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Arch Linux:: Packages for Arch Linux.
|
* Arch Linux:: Packages for Arch Linux.
|
||||||
|
* Arch Linux ARM:: Packages for Arch Linux ARM.
|
||||||
* Chakra:: Packages for Chakra.
|
* Chakra:: Packages for Chakra.
|
||||||
* Gentoo Linux:: Packages for Gentoo Linux.
|
|
||||||
* Debian GNU/Linux:: Packages for Debian GNU/Linux and Ubuntu.
|
* 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
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
@ -1348,24 +1363,26 @@ before building and installing.
|
||||||
@cindex arch linux
|
@cindex arch linux
|
||||||
|
|
||||||
The official Arch Linux package repositories contains @command{ponysay} as
|
The official Arch Linux package repositories contains @command{ponysay} as
|
||||||
@w{@code{community/ponysay}}. The Arch Linux User Repository (AUR) contains a
|
@w{@code{community/ponysay}} (developer maintained). The Arch Linux User Repository
|
||||||
bleeding edge git version of @command{ponysay} as @code{ponysay-git}.
|
(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
|
@node Chakra
|
||||||
@subsection Chakra
|
@subsection Chakra
|
||||||
@cindex chakra
|
@cindex chakra
|
||||||
|
|
||||||
Chakra users can install from (CCR) a stable version named a @code{ponysay},
|
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}.
|
(developer maintained Arch Linux mirror), additionally a git verion of ponysay is
|
||||||
|
available as @code{ponysay-git} (developer maintained Arch Linux mirror).
|
||||||
|
|
||||||
@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}}.
|
|
||||||
|
|
||||||
|
|
||||||
@node Debian GNU/Linux
|
@node Debian GNU/Linux
|
||||||
|
@ -1373,9 +1390,34 @@ contains @command{ponysay} as @w{@code{games-misc/ponysay}}.
|
||||||
@cindex debian gnu/linux
|
@cindex debian gnu/linux
|
||||||
@cindex ubuntu
|
@cindex ubuntu
|
||||||
|
|
||||||
A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay},
|
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
|
(user maintained), and PPA:s can be found at
|
||||||
@url{https://launchpad.net/~blazemore/+archive/ponysay}.
|
@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
|
@node Uninstalling
|
||||||
|
@ -2022,6 +2064,8 @@ than unlimited. Currently this cannot be modified (without editing the source co
|
||||||
@item
|
@item
|
||||||
If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
|
If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
|
||||||
printed to it.
|
printed to it.
|
||||||
|
@item
|
||||||
|
Arguments starting with @code{n} or @code{i} is allowed for @option{-W}.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|
||||||
|
|
20
ponysay.py
20
ponysay.py
|
@ -319,13 +319,13 @@ class Ponysay():
|
||||||
ponies[pony] = ponydir + ponyfile
|
ponies[pony] = ponydir + ponyfile
|
||||||
|
|
||||||
## Support for explicit pony file names
|
## Support for explicit pony file names
|
||||||
if not names == None:
|
if names is not None:
|
||||||
for name in names:
|
for name in names:
|
||||||
if os.path.exists(name):
|
if os.path.exists(name):
|
||||||
ponies[name] = name
|
ponies[name] = name
|
||||||
|
|
||||||
## If there is not select ponies, choose all of them
|
## 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())
|
names = list(ponies.keys())
|
||||||
|
|
||||||
## Select a random pony of the choosen onles
|
## Select a random pony of the choosen onles
|
||||||
|
@ -806,11 +806,19 @@ class Ponysay():
|
||||||
if linuxvt:
|
if linuxvt:
|
||||||
print('\033[H\033[2J', end='')
|
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
|
env_width = os.environ['PONYSAY_FULL_WIDTH'] if 'PONYSAY_FULL_WIDTH' in os.environ else None
|
||||||
if env_width is None: env_width = ''
|
if env_width is None: env_width = ''
|
||||||
widthtruncation = self.__gettermsize()[1] if env_width not in ('yes', 'y', '1') else None
|
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
|
## Get balloon object
|
||||||
balloonfile = self.__getballoonpath(args.opts['-b'])
|
balloonfile = self.__getballoonpath(args.opts['-b'])
|
||||||
|
@ -833,8 +841,8 @@ class Ponysay():
|
||||||
|
|
||||||
|
|
||||||
## Run cowsay replacement
|
## Run cowsay replacement
|
||||||
backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap if messagewrap is not None else 40,
|
backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap, width = widthtruncation,
|
||||||
width = widthtruncation, balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
|
balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
|
||||||
backend.parse()
|
backend.parse()
|
||||||
output = backend.output
|
output = backend.output
|
||||||
if output.endswith('\n'):
|
if output.endswith('\n'):
|
||||||
|
|
Loading…
Reference in a new issue