This commit is contained in:
Mattias Andrée 2012-08-19 03:16:13 +02:00
parent bba147e0c9
commit 50a53b99aa
6 changed files with 127 additions and 92 deletions

1
.gitignore vendored
View file

@ -16,6 +16,7 @@
/completion/*-completion-think.* /completion/*-completion-think.*
/manuals/manpage.*.gz /manuals/manpage.*.gz
/ponysay.info
/ponysay.info.gz /ponysay.info.gz
/truncater /truncater
*.install *.install

View file

@ -90,7 +90,7 @@ Dependencies
`cowsay`: this is a wrapper for cowsay `cowsay`: this is a wrapper for cowsay
`python3`: Written in python 3 `python>=3`: Written in python 3
### Package building dependencies ### Package building dependencies

2
configure vendored
View file

@ -77,7 +77,7 @@ for arg in "$@"; do
elif [ "$opt" = '--without-fish' ]; then installFish='' elif [ "$opt" = '--without-fish' ]; then installFish=''
elif [ "$opt" = '--without-zsh' ]; then installZsh='' elif [ "$opt" = '--without-zsh' ]; then installZsh=''
elif [ "$opt" = "--with-everyting" ]; then elif [ "$opt" = "--everything" ]; then
installPdf=' install-pdf' installPdf=' install-pdf'
installInfo=' install-info' installInfo=' install-info'
installMan=' install-man' installMan=' install-man'

View file

@ -8,7 +8,7 @@
@documentlanguage en @documentlanguage en
@finalout @finalout
@c %**end of header @c %**end of header
@set VERSION 1.4.1 @set VERSION 2.0
@copying @copying
This manual is for ponysay This manual is for ponysay
@ -117,15 +117,21 @@ Otherwise @command{ponysay} and @command{ponythink} is the same thing.
Parse the following arguments as parts of @code{@var{message}}. Parse the following arguments as parts of @code{@var{message}}.
@item -h @item -h
@itemx --help
@cindex @command{-h} @cindex @command{-h}
@cindex @command{--help}
Show summary of options. Show summary of options.
@item -v @item -v
@item --verion
@cindex @command{-v} @cindex @command{-v}
@cindex @command{--version}
Show version of program. Show version of program.
@item -f PONY @item -f PONY
@itemx --pony PONY
@cindex @command{-f} @cindex @command{-f}
@cindex @command{--pony}
Specify the pony that should printed, this can either be a file name or Specify the pony that should printed, this can either be a file name or
a pony name printed by @command{ponysay -l}. If it is a file name with a pony name printed by @command{ponysay -l}. If it is a file name with
a relative path and does not include a `@code{/}', it must begin with a relative path and does not include a `@code{/}', it must begin with
@ -134,7 +140,9 @@ multiple times to specify a set of ponies from which one will be selected
randomly. If no pony is specified one will be selected randomly. randomly. If no pony is specified one will be selected randomly.
@item -q [PONY...] @item -q [PONY...]
@itemx --quote [PONY...]
@cindex @command{-q} @cindex @command{-q}
@cindex @command{--quote}
By using this option, a pony will be printed with quotes from her in My Little Pony: By using this option, a pony will be printed with quotes from her in My Little Pony:
Friendship is Magic. The pony will be selected randomly, unless at least one pony Friendship is Magic. The pony will be selected randomly, unless at least one pony
is added as an argument after @command{-q}. If one or more ponies are added after is added as an argument after @command{-q}. If one or more ponies are added after
@ -143,19 +151,25 @@ This option requires the extension @command{ponyquotes4ponysay}, which
is included by default since version 1.2. is included by default since version 1.2.
@item -W COLUMN @item -W COLUMN
@itemx --wrap COLUMN
@cindex @command{-W} @cindex @command{-W}
@cindex @command{--wrap}
Specify the screen column where the message should be wrapped, Specify the screen column where the message should be wrapped,
this is by default 40, which is inherited from @command{cowsay}. this is by default 40, which is inherited from @command{cowsay}.
@item -l @item -l
@itemx --list
@cindex @command{-l} @cindex @command{-l}
@cindex @command{--list}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay} Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
is installed the ponies which have quotes, i.e. can be used with the is installed the ponies which have quotes, i.e. can be used with the
@command{-q} option, will be mark by being printed in bold or bright @command{-q} option, will be mark by being printed in bold or bright
(depending on the terminal.) (depending on the terminal.)
@item -L @item -L
@itemx --linklist
@cindex @command{-L} @cindex @command{-L}
@cindex @command{--linklist}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay} Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
is installed the ponies which have quotes, i.e. can be used with the is installed the ponies which have quotes, i.e. can be used with the
@command{-q} option, will be mark by being printed in bold or bright @command{-q} option, will be mark by being printed in bold or bright
@ -226,7 +240,7 @@ to @command{ponypipe}: @url{http://www.reddit.com/r/mylittlelinux/comments/srixi
If you use TTY and have a custom colour palette, you should also add to your If you use TTY and have a custom colour palette, you should also add to your
@code{~/.bashrc}, before @code{fortune | ponysay}: @code{~/.bashrc}, before @code{fortune | ponysay}:
@example @example
[[ "$TERM" = "linux" ]] && [ "$TERM" = "linux" ] &&
function ponysay function ponysay
@{ exec ponysay "$@@" @{ exec ponysay "$@@"
#RESET PALETTE HERE #RESET PALETTE HERE
@ -249,7 +263,7 @@ So before opening @command{screen} you use set @code{$TERM} to @code{xterm-256co
if you are using a terminal with support for @code{xterm}'s 256 colours; this if you are using a terminal with support for @code{xterm}'s 256 colours; this
can be done by adding to your @code{~/.bashrc}: can be done by adding to your @code{~/.bashrc}:
@example @example
[[ "$TERM" = "xterm" ]] && [ "$TERM" = "xterm" ] &&
function screen function screen
@{ export TERM="xterm-256color" @{ export TERM="xterm-256color"
exec screen "$@@" exec screen "$@@"
@ -303,7 +317,7 @@ are not running @command{ponysay} under TTY.
@cindex replace cowsay @cindex replace cowsay
If you want to use another program than @command{cowsay} (the first If you want to use another program than @command{cowsay} (the first
@command{cowsay} found in @code{$PATH}), you can export @code{PONYSAY_COWSAY} @command{cowsay} found in @code{$PATH}), you can export @code{PONYSAY_COWSAY}
with the value of that program. In earlier verions than version 2.0: If, and with the value of that program. In earlier versions than version 2.0: If, and
only if, @code{PONYSAY_COWSAY} does not have any value, @command{cowsay} is only if, @code{PONYSAY_COWSAY} does not have any value, @command{cowsay} is
patch with @code{use utf8;} to the beginning. The @code{use utf8;} patch is patch with @code{use utf8;} to the beginning. The @code{use utf8;} patch is
introduced to make it easier to customise cowsay. introduced to make it easier to customise cowsay.
@ -448,20 +462,14 @@ properties that makes a picture good.
@table @option @table @option
@item bash @item bash
Required for the main script [file: @command{ponysay}]. Required for the glue script.
@item cowsay @item cowsay
This is a wrapper for @command{cowsay}. This is a wrapper for @command{cowsay}.
@item coreutils @item coreutils
The main script [file: @command{ponysay}] uses @command{stty}, @command{cut}, @command{stty} is used to determine the size of the terminal,
@command{ls}, @command{cat}, @command{sort}, @command{readlink}, @command{pwd}, other parts of Coreutils will not be needed for long
@command{head} and @command{tail}. @item python
@item sed Python version 3 is the primary language of the program
@cindex @command{-l}
@cindex @command{-L}
Used to remove @code{.pony} from pony names when running @command{ponysay -l}
and @command{ponysay -L}.
@item perl
Required to run @command{ponysay -l} and @command{ponysay -L}.
@end table @end table
@node Optional runtime dependencies @node Optional runtime dependencies
@ -470,19 +478,13 @@ Required to run @command{ponysay -l} and @command{ponysay -L}.
@cindex optional dependencies @cindex optional dependencies
@table @option @table @option
@item ponyquotes4ponysay @item util-say
@cindex ponyquotes4ponysay @cindex @command{util-say}
@cindex @command{-q} @cindex kms
For support of My Little Pony quotes with associated pony: the @code{-q} option. @cindex tty
It can be downloaded at @url{https://github.com/maandree/ponyquotes4ponysay}. @cindex linux vt
Since version 1.2, this module is included in ponysay. You can edit ponysay's
@code{Makefile} to remove it.
@item kmsponies4ponysay
@cindex kmsponies4ponysay
For improved TTY support for user with custom colour palette and KMS support. For improved TTY support for user with custom colour palette and KMS support.
It can be downloaded at @url{https://github.com/maandree/kmsponies4ponysay}. It can be downloaded at @url{https://github.com/maandree/util-say}.
@end table @end table
@ -499,6 +501,8 @@ Required to run the make script.
@item coreutils @item coreutils
The make script uses @command{install}, @command{unlink}, @command{rm}, @command{ln}, The make script uses @command{install}, @command{unlink}, @command{rm}, @command{ln},
@command{mkdir} and @command{cp}. @command{mkdir} and @command{cp}.
@item sed
Used on the make system.
@item texinfo @item texinfo
@itemx info @itemx info
@command{texinfo} and @command{info} are required if you want this @command{info} manual. @command{texinfo} and @command{info} are required if you want this @command{info} manual.
@ -543,7 +547,7 @@ It can be downloaded at @url{https://github.com/maandree/util-say}.
@menu @menu
* Installations basics:: The basics of installations. * Installations basics:: The basics of installations.
* Custom installations:: Installation customisations. * Custom installations:: Installation customisation.
@end menu @end menu
@node Installations basics @node Installations basics
@ -561,17 +565,19 @@ for bleeding edge, or from @url{https://github.com/erkin/ponysay/tags} for relea
If you have @command{git} you @command{clone} the project URL If you have @command{git} you @command{clone} the project URL
@url{https://github.com/erkin/ponysay.git}. @url{https://github.com/erkin/ponysay.git}.
In the terminal,@command{cd} into the ponysay directory and execute In the terminal, @command{cd} into the ponysay directory and execute
@command{make install}. This will install @command{ponysay} into the @command{./configure && make install}. This will install @command{ponysay} into the
@code{/usr}, meaning you may need to run @command{make install} as root, @code{/usr}, meaning you may need to run @command{make install} as root,
e.g. by running @command{sudo make install}. e.g. by running @command{sudo make install}.
Now you will be to use ponysay, run: @command{ponysay "I am just the cutest pony!"}, Now you will be to use ponysay, run: @command{ponysay "I am just the cutest pony!"},
or if have a specific pony in your mind: @command{ponysay -f pinkie "Partay!~"}. or if have a specific pony in your mind: @command{ponysay -f pinkie "Partay!~"}.
@cindex manpage translations
@command{ponysay} comes with this @command{info} manual and a manpage in section 6, @command{ponysay} comes with this @command{info} manual and a manpage in section 6,
@command{man 6 ponysay} (or just @command{man ponysay}). The manpage is also available @command{man 6 ponysay} (or just @command{man ponysay}). The manpage is also available
in Spanish: @command{man -L es 6 ponysay}. in Spanish: @command{man -L es 6 ponysay}. The install the Spanish manual add the
option @command{--with-man-es} when running @command{./configure}.
@node Custom installations @node Custom installations
@ -579,42 +585,64 @@ in Spanish: @command{man -L es 6 ponysay}.
@cindex customised installations @cindex customised installations
@cindex installation customisation @cindex installation customisation
@cindex make @cindex make
@cindex @command{./configure}
@cindex configure
A basic installation will install everyting @command{ponysay} has to offer, except @cindex @command{--everything}
the prebuild PDF manual. If you want to install the PDF manual, which is by default A basic installation will install everything @command{ponysay} has to offer, except
installed as a @command{info} manual, you can run @command{make install-pdf}. the prebuilt PDF manual and translated manpages. If you want to install exactly
@command{make install-pdf} has no require means and will install the PDF manual, and everything add the option @command{--everything} when running @command{./configure}.
only the PDF manual, to @code{/usr/doc/ponysay.pdf}.
If you want to perform a regular installation, but without the @command{info} manual @cindex @command{--with-pdf}
you can run @command{make install-no-info}. It is also possible to install each part @cindex PDF manual, with
independently; running @command{make install-min} will install the core of @cindex @command{--without-man}
@command{ponysay}, which is the minimal set that can installed without generating @cindex manpage, without
errors or problems. After perform the core installaton whether are some other install @cindex @command{--without-info}
commands: @cindex @command{info} manual, without
@cindex @command{--with-man-LANG}
@cindex manpage translations
After @command{--everything} it is possible to remove unwanted parts, this can
of cause be done without @command{--everything}. If you want to install the
PDF manual to @code{/usr/doc/ponysay.pdf} add the option @command{--with-pdf} when
running @command{./configure}. To install a manpage translation add
@command{--with-man-LANG} and substitute the the language code for @code{LANG}.
Currently the only translation is Spanish with the language code @code{es}.
If you do not want the English manpage add the option @command{--without-man}.
If you do not want the @command{info} manual add the option @command{--without-info}.
The following argumentless options are also recognised:
@itemize @bullet @itemize @bullet
@item @command{make install-bash} @item @command{--without-bash}
will install completion for @command{ponysay} and shell GNU Bash. @cindex @command{--without-bash}
@item @command{make install-fish} @cindex @command{bash}, without
will install completion for @command{ponysay} and shell @command{fish}. will skip installation of auto-completion for @command{ponysay} and the
@item @command{make install-zsh} GNU Bourne-again shell, @command{bash}.
will install completion for @command{ponysay} and shell @command{zsh}. @item @command{--without-fish}
@item @command{make install-info} @cindex @command{--without-fish}
will install the @command{info} manual, this will enable the command @command{info ponysay}. @cindex @command{fish}, without
@item @command{make install-man} will skip installation of auto-completion for @command{ponysay} and the
will install the English manpage, which is a small to the point manual that is Friendly interactive shell, @command{fish}.
a bit more helpful @command{ponysay --help}. This will enable the command @item @command{--without-zsh}
@command{man ponysay} and @command{man 6 ponysay}. @cindex @command{--without-zsh}
@item @command{make install-man-es} @cindex @command{zsh}, without
will install a Spanish translation of the manpage. To read it you execute will skip installation of auto-completion for @command{ponysay} and the
@command{man -L es ponysay} or @command{man -L es 6 ponysay}. shell @command{zsh}.
@end itemize @end itemize
@cindex @command{--prefix=TARGET}
@cindex @code{/usr/games}
The program is by default installed in @code{/usr}, if you want another target The program is by default installed in @code{/usr}, if you want another target
directory, you can add @code{PREFIX} when running @command{make}. For example directory, you can add @command{--prefix=TARGET} when running @command{./configure}.
to install @command{ponysay} in @code{/usr/games} you build the program by For example to install @command{ponysay} in @code{/usr/games} you build the
running @command{make PREFIX=/usr/games}, and alike for installation and uninstallation. program by running @command{./configure --prefix=/usr/games}, and alike for
installation and uninstallation. Notice the @command{=} cannot be substituted
with white space.
@cindex @command{--info-desc=DESCRIPTION}
If you are not using @command{--without-info} you can add
@command{--info-desc=DESCRIPTION} to specify the description @command{info}
which provide when listing commands.
@node Arch Linux @node Arch Linux
@ -622,8 +650,8 @@ running @command{make PREFIX=/usr/games}, and alike for installation and uninsta
@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
@code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding edge @code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding
git version of @command{ponysay} as @code{ponysay-git}. edge git version of @command{ponysay} as @code{ponysay-git}.
@node Gentoo Linux @node Gentoo Linux
@ -649,15 +677,11 @@ and a PPA can be found at @url{https://launchpad.net/~blazemore/+archive/ponysay
If you did not install @command{ponysay} with a package manager, but rather If you did not install @command{ponysay} with a package manager, but rather
manually from the upstream, you can uninstall it by running @command{make uninstall}. manually from the upstream, you can uninstall it by running @command{make uninstall}.
Do not forget @code{PREFIX} if it is not installed in @code{/usr}, see
@ref{Custom installations}.
Well written package manages will uninstall files that the package is no longer Well written package manages will uninstall files that the package is no longer
using, i.e. if deleted, moved or renamed. To uninstall files that are not longer using, i.e. if deleted, moved or renamed. To uninstall files that are not longer
used, by the currently installed version you will need that versions @code{Makefile}. used, by the currently installed version you will need that versions @code{Makefile}.
To perform the uninstallion of old filed run @command{make uninstall-old}. To perform the uninstallion of old filed run @command{make uninstall-old}.
Do not forget @code{PREFIX} if it is not installed in @code{/usr}, see
@ref{Custom installations}.
@ -683,8 +707,8 @@ are enabled when other packages are installed.
@command{ponyquotes4ponysay} is a package that adds support for MLP:FiM quotes that are @command{ponyquotes4ponysay} is a package that adds support for MLP:FiM quotes that are
displayed with the associated ponies. See @ref{Invoking ponysay} for more information. displayed with the associated ponies. See @ref{Invoking ponysay} for more information.
As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay}, but can easily As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay},
be removed, but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}. but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}.
@node kmsponies4ponysay @node kmsponies4ponysay
@ -700,7 +724,7 @@ be removed, but is still available at @url{https://github.com/maandree/ponyquote
@cindex .bashrc @cindex .bashrc
@command{kmsponies4ponysay} is an extension for TTY users that have a custom TTY colour @command{kmsponies4ponysay} is an extension for TTY users that have a custom TTY colour
palette and KMS support. KMS is supported on must computers, but due to lack of published palette and KMS support. KMS is supported on most computers, but due to lack of published
specifications Nvidea drivers does not support KMS. @command{kmsponies4ponysay} can be specifications Nvidea drivers does not support KMS. @command{kmsponies4ponysay} can be
downloaded at @url{https://github.com/maandree/kmsponies4ponysay}. downloaded at @url{https://github.com/maandree/kmsponies4ponysay}.
@ -718,7 +742,7 @@ Assuming you have a function in your @code{~/.bashrc}, to reset the colour palet
you set it to last time in the terminal, named @command{reset-palette}, your @code{~/.bashrc} you set it to last time in the terminal, named @command{reset-palette}, your @code{~/.bashrc}
should, for example, contain: should, for example, contain:
@example @example
[[ "$TERM" = "linux" ]] && [ "$TERM" = "linux" ] &&
function ponysay function ponysay
@{ export PONYSAY_KMS_PALETTE="`reset-palette`" @{ export PONYSAY_KMS_PALETTE="`reset-palette`"
exec ponysay "$@@" exec ponysay "$@@"
@ -727,6 +751,9 @@ should, for example, contain:
@command{kmsponies4ponysay} uses @code{/var/cache/kmsponies4ponysay/} for cache space. @command{kmsponies4ponysay} uses @code{/var/cache/kmsponies4ponysay/} for cache space.
As of version 2.0 @command{kmsponies4ponysay} is included in @command{ponysay},
but is still available at @url{https://github.com/maandree/kmsponies4ponysay}.
@node Inner workings @node Inner workings
@ -817,13 +844,15 @@ sequences after the first character after the initial escape if it is not either
@cindex script languages @cindex script languages
@cindex programming languages @cindex programming languages
Ponysay is written primarily in GNU Bash shell script (POSIX compliant); the truncater Before version 2.0 @command{ponysay} was written primarily in GNU Bash script
is however written in C, because it is simple, fast, does not pose addition dependencies, (POSIX compliant); the truncater was however written in C, because it is simple,
and is easy to do byte hacking in. fast, does not pose addition dependencies, and is easy to do byte hacking in.
Sometimes shell is too slow, in these cases [that exist today] Perl is used; Perl Sometimes shell is too slow, in these cases Perl was used; Perl was already
is already required by cowsay, is similar to shell, but also supports hash tables. required by cowsay, is similar to shell, but also supports hash tables.
[maandree: I actually learned Perl just for this.]
However since version 2.0 we are trying to move from all there languages
and only use Python 3.
@ -1199,23 +1228,24 @@ First release.
@node Ponysay contributors @node Ponysay contributors
@appendix Ponysay contributors @appendix Ponysay contributors
Active developers of ponysay: Active developers and major contributors of ponysay:
@itemize @bullet @itemize @bullet
@item Erkin Batu Altunbaş @item Erkin ``erkin'' Batu Altunbaş
@item Mattias Andrée @item Mattias ``maandree'' Andrée
@item Sven-Hendrik Haase @item Elis ``etu'' Axelsson
@item Pablo Lezaeta @item Sven-Hendrik ``svenstaro'' Haase
@item Jan Alexander Steffens @item Pablo ``jristz'' Lezaeta
@item Jan Alexander ``heftig'' Steffens
@end itemize @end itemize
@* @*
Patchers and other contributors of ponysay: Patchers and other contributors of ponysay:
@itemize @bullet @itemize @bullet
@item Elis Axelsson @item Duane ``Marneus68'' Bekaert
@item Duane Bekaert @item Kyah ``L-four'' Rindlisbacher
@item Kyah Rindlisbacher @item James `rossy2401'' Ross-Gowan
@item James Ross-Gowan @item Louis ``kragniz'' Taylor
@item Louis Taylor @item Jannis ``sycoso''
@item Jannis @item ``spider-mario''
@end itemize @end itemize
@ -1230,11 +1260,15 @@ You have the four essential freedoms:
@item @item
The freedom to run the program, for any purpose (freedom 0). The freedom to run the program, for any purpose (freedom 0).
@item @item
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. The freedom to study how the program works, and change it so it does your
computing as you wish (freedom 1). Access to the source code is a precondition
for this.
@item @item
The freedom to redistribute copies so you can help your neighbour (freedom 2). The freedom to redistribute copies so you can help your neighbour (freedom 2).
@item @item
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. The freedom to distribute copies of your modified versions to others (freedom 3).
By doing this you can give the whole community a chance to benefit from your
changes. Access to the source code is a precondition for this.
@end itemize @end itemize
@* @*

Binary file not shown.

Binary file not shown.