Merge branch 'master' into develop

This commit is contained in:
Mattias Andrée 2012-08-19 19:52:39 +02:00
commit 4774e74ba0
341 changed files with 1428 additions and 1097 deletions

4
.gitignore vendored
View file

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

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "ponyquotes4ponysay"]
path = ponyquotes4ponysay
url = git://github.com/maandree/ponyquotes4ponysay.git

View file

@ -1,3 +1,12 @@
Version 2.0
Makefile is generated by running `./configure`.
All Perl scripts and almost all Bash are reimplemented in one Python 3 script.
kmsponies4ponysay is included.
Version 1.4.1
Code is repaired and more portable.

View file

@ -3,12 +3,12 @@
# Active developers
Erkin Batu Altunbaş
Mattias Andrée
Elis Axelsson
Sven-Hendrik Haase
Pablo Lezaeta
Jan Alexander Steffens
# Patchers and other contributors
Elis Axelsson
Duane Bekaert
Kyah Rindlisbacher
James Ross-Gowan

181
Makefile
View file

@ -1,181 +0,0 @@
PREFIX="/usr"
INSTALLDIR="$(DESTDIR)$(PREFIX)"
all: truncater manpages infomanual ponythinkcompletion
truncater:
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o "truncater" "truncater.c"
manpages:
gzip -9 -f < "manuals/manpage.6" > "manuals/manpage.6.gz"
gzip -9 -f < "manuals/manpage.es.6" > "manuals/manpage.es.6.gz"
infomanual:
makeinfo "manuals/ponysay.texinfo"
gzip -9 -f "ponysay.info"
ponysaycompletion:
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/bash-completion.sh" >"completion/bash-completion.sh.install"
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/fish-completion.fish" >"completion/fish-completion.fish.install"
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/zsh-completion.zsh" >"completion/zsh-completion.zsh.install"
ponythinkcompletion: ponysaycompletion
sed -e 's/ponysay/ponythink/g' <"completion/bash-completion.sh.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/bash-completion-think.sh"
sed -e 's/ponysay/ponythink/g' <"completion/fish-completion.fish.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/fish-completion-think.fish"
sed -e 's/ponysay/ponythink/g' <"completion/zsh-completion.zsh.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/zsh-completion-think.zsh"
install-min: truncater
mkdir -p "$(INSTALLDIR)/share/ponysay/"
mkdir -p "$(INSTALLDIR)/share/ponysay/ponies"
mkdir -p "$(INSTALLDIR)/share/ponysay/ttyponies"
mkdir -p "$(INSTALLDIR)/share/ponysay/quotes"
cp -P ponies/*.pony "$(INSTALLDIR)/share/ponysay/ponies/"
cp -P ttyponies/*.pony "$(INSTALLDIR)/share/ponysay/ttyponies/"
cp -P quotes/*.* "$(INSTALLDIR)/share/ponysay/quotes/"
mkdir -p "$(INSTALLDIR)/bin/"
install "ponysay" "$(INSTALLDIR)/bin/ponysay"
ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"
mkdir -p "$(INSTALLDIR)/lib/ponysay/"
install -s "truncater" "$(INSTALLDIR)/lib/ponysay/truncater"
install "list.pl" "$(INSTALLDIR)/lib/ponysay/list.pl"
install "linklist.pl" "$(INSTALLDIR)/lib/ponysay/linklist.pl"
install "pq4ps" "$(INSTALLDIR)/lib/ponysay/pq4ps"
install "pq4ps.pl" "$(INSTALLDIR)/lib/ponysay/pq4ps.pl"
install "pq4ps-list.pl" "$(INSTALLDIR)/lib/ponysay/pq4ps-list.pl"
mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"
install "COPYING" "$(INSTALLDIR)/share/licenses/ponysay/COPYING"
install-bash: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/bash-completion/completions/"
install "completion/bash-completion.sh.install" "$(INSTALLDIR)/share/bash-completion/completions/ponysay"
install "completion/bash-completion-think.sh" "$(INSTALLDIR)/share/bash-completion/completions/ponythink"
install-zsh: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/zsh/site-functions/"
install "completion/zsh-completion.zsh.install" "$(INSTALLDIR)/share/zsh/site-functions/_ponysay"
install "completion/zsh-completion-think.zsh" "$(INSTALLDIR)/share/zsh/site-functions/_ponythink"
install-fish: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/fish/completions/"
install "completion/fish-completion.fish.install" "$(INSTALLDIR)/share/fish/completions/ponysay.fish"
install "completion/fish-completion-think.fish" "$(INSTALLDIR)/share/fish/completions/ponythink.fish"
install-man: manpages
mkdir -p "$(INSTALLDIR)/share/man/man6"
install "manuals/manpage.6.gz" "$(INSTALLDIR)/share/man/man6/ponysay.6.gz"
ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man/man6/ponythink.6.gz"
install-man-es: manpages
mkdir -p "$(INSTALLDIR)/share/man/es/man6"
install "manuals/manpage.es.6.gz" "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz"
ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz"
install-info: infomanual
mkdir -p "$(INSTALLDIR)/share/info"
install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"
install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"
install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description="My Little Ponies for your terminal" "$(INSTALLDIR)/share/info/ponysay.info.gz"
install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description="My Little Ponies for your terminal" "$(INSTALLDIR)/share/info/ponythink.info.gz"
install-no-info: install-min install-bash install-zsh install-fish install-man install-man-es
install-pdf:
install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"
install: install-no-info install-info
@echo -e '\n\n'\
'/--------------------------------------------------\\\n'\
'| ___ |\n'\
'| / (_) o |\n'\
'| \__ _ _ __ |\n'\
'| / / |/ | | / \_| | |\n'\
'| \___/ | |_/|/\__/ \_/|/ |\n'\
'| /| /| |\n'\
'| \| \| |\n'\
'| ____ |\n'\
'| | _ \ ___ _ __ _ _ ___ __ _ _ _ |\n'\
'| | |_) |/ _ \ | '\''_ \ | | | |/ __| / _` || | | | |\n'\
'| | __/| (_) || | | || |_| |\__ \| (_| || |_| | |\n'\
'| |_| \___/ |_| |_| \__, ||___/ \__,_| \__, | |\n'\
'| |___/ |___/ |\n'\
'\\--------------------------------------------------/'
@echo '' | ./ponysay -f ./`if [[ "$$TERM" = "linux" ]]; then echo ttyponies; else echo ponies; fi`/pinkiecannon.pony | tail --lines=30 ; echo -e '\n'
uninstall:
if [ -d "$(INSTALLDIR)/share/ponysay" ]; then rm -fr "$(INSTALLDIR)/share/ponysay" ; fi
if [ -d "$(INSTALLDIR)/lib/ponysay" ]; then rm -fr "$(INSTALLDIR)/lib/ponysay" ; fi
if [ -f "$(INSTALLDIR)/bin/ponysay" ]; then unlink "$(INSTALLDIR)/bin/ponysay" ; fi
if [ -f "$(INSTALLDIR)/bin/ponythink" ]; then unlink "$(INSTALLDIR)/bin/ponythink" ; fi
if [ -f "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ]; then unlink "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ; fi
if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ; fi
if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponythink" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponythink"; fi
if [ -f "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ; fi
if [ -f "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ; fi
if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponysay"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponysay" ; fi
if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponythink"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponythink" ; fi
if [ -f "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/info/ponysay.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponysay.info.gz" ; fi
if [ -f "$(INSTALLDIR)/share/info/ponythink.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponythink.info.gz" ; fi
if [ -f "$(INSTALLDIR)/doc/ponysay.pdf" ]; then unlink "$(INSTALLDIR)/doc/ponysay.pdf" ; fi
uninstall-old:
if [ -d "$(INSTALLDIR)/share/ponies" ]; then rm -fr "$(INSTALLDIR)/share/ponies" ; fi
if [ -d "$(INSTALLDIR)/share/ttyponies" ]; then rm -fr "$(INSTALLDIR)/share/ttyponies" ; fi
if [ -f "$(INSTALLDIR)/bin/ponysaytruncater" ]; then unlink "$(INSTALLDIR)/bin/ponysaytruncater" ; fi
if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ; fi
clean:
if [ -f "truncater" ]; then rm -f "truncater" ; fi
if [ -f "completion/bash-completion-think.sh" ]; then rm -f "completion/bash-completion-think.sh" ; fi
if [ -f "completion/fish-completion-think.fish" ]; then rm -f "completion/fish-completion-think.fish"; fi
if [ -f "completion/zsh-completion-think.zsh" ]; then rm -f "completion/zsh-completion-think.zsh" ; fi
if [ -f "manuals/manpage.6.gz" ]; then rm -f "manuals/manpage.6.gz" ; fi
if [ -f "manuals/manpage.es.6.gz" ]; then rm -f "manuals/manpage.es.6.gz" ; fi
if [ -f "ponysay.info.gz" ]; then rm -f "ponysay.info.gz" ; fi
clean-old:
if [ -f "ponysaytruncater" ]; then rm -f "ponysaytruncater" ; fi
## Scripts for maintainers
ttyponies:
mkdir -p "ttyponies"
for pony in $$(ls --color=no "ponies/"); do \
echo "building ttypony: $$pony" ;\
if [ `readlink "ponies/$$pony"` = "" ]; then \
ponysay2ttyponysay < "ponies/$$pony" | tty2colourfultty -c 1 -e > "ttyponies/$$pony" ;\
git add "ttyponies/$$pony" ;\
elif [ ! -f "ttyponies/$$pony" ]; then \
ln -s `readlink "ponies/$$pony"` "ttyponies/$$pony" ;\
git add "ttyponies/$$pony" ;\
fi \
done
pdfmanual:
texi2pdf "manuals/ponysay.texinfo"
git add "manuals/ponysay.texinfo" "ponysay.pdf"
for ext in `echo aux cp cps fn ky log pg toc tp vr`; do \
(if [ -f "ponysay.$$ext" ]; then unlink "ponysay.$$ext"; fi); \
done
if [ -d "ponysay.t2d" ]; then rm -r "ponysay.t2d"; fi
submodules: clean
(cd "ponyquotes4ponysay/"; make clean)
git submodule init
git submodule update
quotes: submodules
(cd "ponyquotes4ponysay/"; make -B)
if [ -d quotes ]; then git rm "quotes/"*.*; fi
mkdir -p "quotes"
cp "ponyquotes4ponysay/ponyquotes/"*.* "quotes"
git add "quotes/"*.*

206
README
View file

@ -1,206 +0,0 @@
_____
| __ \
| |__) |___ _ __ _ _ ___ __ _ _ _
| ___// _ \ | '_ \ | | | |/ __| / _` || | | |
| | | (_) || | | || |_| |\__ \| (_| || |_| |
|_| \___/ |_| |_| \__, ||___/ \__,_| \__, |
__/ | __/ |
|___/ |___/
_____ _ _ _ _
|_ _|___ __| | __ _ _ _ _ _ ___ _ _ _ _ | |_ ___ _ _ _ __ (_) _ _ __ _ | |
| | / _ \/ _` |/ _` || || | | || |/ _ \| || || '_| | _|/ -_)| '_|| ' \ | || ' \ / _` || | _
|_| \___/\__,_|\__,_| \_, | \_, |\___/ \_,_||_| \__|\___||_| |_|_|_||_||_||_|\__,_||_|( )
|__/ |__/ |/
_ _ _ _ _ _
| |_ ___ _ __ ___ _ _ _ _ ___ __ __ __ | |_ | |_ ___ __ __ __ ___ _ _ | | __| || |
| _|/ _ \| ' \ / _ \| '_|| '_|/ _ \\ V V / | _|| ' \ / -_) \ V V // _ \| '_|| |/ _` ||_|
\__|\___/|_|_|_|\___/|_| |_| \___/ \_/\_/ \__||_||_|\___| \_/\_/ \___/|_| |_|\__,_|(_)
Required runtime dependencies
=============================
bash : required for the main script [file: ponysay]
cowsay : this is a wrapper for cowsay
coreutils : the main script [file: ponysay] uses stty, cut, ls, cat, sort, readlink, pwd, head and tail
sed : used to remove .pony from pony names when running `ponysay -l` and `ponysay -L`
perl : required to run `ponysay -l` and `ponysay -L`
Optional runtime dependencies
=============================
ponyquotes4ponysay : for support of My Little Pony quotes with associated pony
-- Included as a submodule, and can easily be removed by edit Makefile.
kmsponies4ponysay : improving TTY support under KMS support
-- Available for Arch:ers in AUR (https://aur.archlinux.org/packages.php?ID=61111)
-- and on github at https://github.com/maandree/ponyquotes4ponysay
Package building dependencies
=============================
gcc : used for compiling ponysaytruncater.c
gzip : used for compressing manpages
make : required to run the make script
coreutils : make script uses install, unlink, rm, ln, mkdir and cp
tex
texinfo : required to build info manual (tex is required by texinfo)
Dependencies for pony providers
===============================
make : required to run `make -B ttyponies`
coreutils : ln and readlink are used in the ttyponies subscript
bash : used in the ttyponies subscript
util-say : used by `make ttyponies` to build ttyponies from xterm ponies
-- Available for Arch:ers in AUR as util-say-git (https://aur.archlinux.org/packages.php?ID=60241)
-- and on github at https://github.com/maandree/util-say
Installation on GNU/Linux (or other Unix implementations)
=========================================================
Before installing ponysay, make sure your system have the packages listed under
[Required runtime dependencies] and [Package building dependencies] installed.
Download or clone the project. bleeding edge: https://github.com/erkin/ponysay/tarball/master
release: https://github.com/erkin/ponysay/tags
In the terminal, `cd` into the ponysay directory and execute `make && make install`.
This will install ponysay into the $PREFIX (/usr by default, meaning you may need to
run `make install` as root, e.g. by running `sudo make install`.)
In order to use ponysay, run: ponysay "I am just the cutest pony!"
Or if you have a specific pony in your mind: ponysay -f pinkie "Partay!~"
Run `info ponysay`, `man 6 ponysay` (man ponysay) or `ponysay -h` for more information.
A Spanish manual is available: man -L es 6 ponysay
Pony fortune on terminal startup
================================
This requires that you have fortune utility installed. You can install it from your
distributions package repository, it should be named fortune or fortune-mod.
Edit your ~/.bashrc and this line [to the end should work]:
fortune | ponysay
Now every time you open a terminal a pony should give your fortune.
If you wany ponified fortuned the are some stuff you can try:
A gigantic sed script:
http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/
ponypipe:
https://github.com/maandree/ponypipe
https://aur.archlinux.org/packages.php?ID=60228
pinkie-pie:
https://github.com/maandree/pinkie-pie
https://aur.archlinux.org/packages.php?ID=60229
Pony quotes
===========
Running `ponysay -q` will give you a random pony saying one it its quote from MLP:FiM.
Add one or more argument after `-q` to sepecify a set of ponies from which one will be selected randomly.
When running `ponysay -l` or `ponysay -L` the ponies which have quotes will be printed bold or bright (depending on terminal).
Ponies in TTY (Linux VT)
========================
If you have a custom colour palette edit your ~/.bashrc and add:
if [ "$TERM" = "linux" ]; then
function ponysay
{
exec ponysay "$@"
#RESET PALETTE HERE
}
fi
FAQ
===
Q: The output looks like a mess in (TTY/PuTTY/other)!
A: Unfortunately, there's nothing much we can do about it.
See issue 1: https://github.com/erkin/ponysay/issues/1
Q: You are missing (my-favourite-pony)!
A: Ask and we'll add!
https://github.com/erkin/ponysay/issues
Q: Which programs do you use to generate the pony files?
A: The pony files are actually mostly a bunch of selected browser
ponies that are generated into cow files via img2xterm
https://github.com/rossy2401/img2xterm
or util-say.
https://github.com/maandree/util-say
https://aur.archlinux.org/packages.php?ID=60241
Providing ponies
================
Most pony images are browser ponies or desktop ponies,
browser ponies is a port of desktop ponies, implementing it in JavaScript.
Browser ponies: https://github.com/panzi/Browser-Ponies
Desktop ponies: http://desktop-pony-team.deviantart.com/
There is also a collection of ponies that are not yet pixelated in a Java reimplementation:
https://github.com/maandree/unisay/tree/develop/dev/newponies
New ponies can be created from regular images by using img2xterm
https://github.com/rossy2401/img2xterm
or util-say
https://github.com/maandree/util-say
https://aur.archlinux.org/packages.php?ID=60241
Using util-say:
img2ponysay -c 1 -2 -- SOURCE_IMAGE > PONY_FILE
PONY_FILE should end with .pony and be localed in ponies/
Omit -2 if the source image does not use double pixel size.
(`-c 1` is no longer required.)
For more information see https://github.com/maandree/util-say/wiki/img2ponysay
When a pony is added please also add a ttypony version, but if you don't please
state so in the pull request so we do not miss the create it; the simplest way to
do this is to run `make -B ttyponies` after adding the ponies to ponies/.
Running `make -B ttyponies` will build (or rebuild) all ttyponies with a pony present
in ponies/, and creates all needed symlinks.
To be able to run `make -B ttyponies` you must have the packages listed under
[Dependencies for pony providers].

View file

@ -12,10 +12,10 @@ First of all, you need `cowsay` from your local repositories.
Obtain it from [here](http://www.nog.net/~tony/warez) if you wish to compile it yourself.
This is often sufficient, but if is not you may be missing one of the standard packages: [bash](ftp://ftp.gnu.org/gnu/bash/), [coreutils](ftp://ftp.gnu.org/gnu/coreutils/) or [sed](ftp://ftp.gnu.org/gnu/sed/).
[Download](https://github.com/erkin/ponysay/downloads) or clone the project.
In the terminal, `cd` into the ponysay directory and `make && make install`.
This will install ponysay into the $PREFIX (`/usr` by default, meaning you may need to `make install` as root, e.g. `sudo make install`.)
[Download](/erkin/ponysay/downloads) or clone the project.
In the terminal, `cd` into the ponysay directory and `./configure && make && make install`.
You make need to be super user to run `make install`, on most systems this
can be achieved by running `sudo make install`.
If either `make` or `make install` fails you be missing one of the standard packages:
[gcc](ftp://ftp.gnu.org/gnu/gcc/), [gzip](ftp://ftp.gnu.org/gnu/gzip/), [make](ftp://ftp.gnu.org/gnu/make/) or [coreutils](ftp://ftp.gnu.org/gnu/coreutils/), or [git](http://git-scm.com/).
@ -46,7 +46,7 @@ This requires that you have the `fortune` utility installed. You can install it
or just fetch the source code from [here](ftp://ftp.ibiblio.org/pub/linux/games/amusements/fortune/).
You can try [this](http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/) script or
[ponypipe](https://github.com/maandree/ponypipe) to ponify fortunes.
[ponypipe](/maandree/ponypipe) to ponify fortunes.
Edit your `~/.bashrc` and add this to the end of the file
@ -84,19 +84,17 @@ Dependencies
### Required runtime dependencies
`bash`: required for the main script [file: ponysay]
`bash`: bash is used in a minor part of the program to make everything work, this will be removed later
`coreutils`: stty in coreutils used to determine size of the terminal, other parts of coreutils will not be needed for long
`cowsay`: this is a wrapper for cowsay
`coreutils`: the main script uses stty, cut, ls, cat, sort, readlink, pwd, head and tail
`sed`: used to remove .pony from pony names when running `ponysay -l` and `ponysay -l`
`perl`: required to run `ponysay -l` and `ponysay -L`
`python>=3`: Written in python 3
### Package building dependencies
`gcc`: used for compiling ponysaytruncater.c
`gcc`: used for compiling truncater.c
`gzip`: used for compressing manpages
@ -110,13 +108,13 @@ FAQ
__Q:__ The output looks like a mess in _(TTY/PuTTY/other)_!
__A:__ Unfortunately, there's nothing much we can do about it. See [issue 1](https://github.com/erkin/ponysay/issues/1).
__A:__ Unfortunately, there's nothing much we can do about it. See [issue 1](/erkin/ponysay/issues/1).
__Q:__ You are missing _(my-favourite-pony)_!
__A:__ [Ask](https://github.com/erkin/ponysay/issues) and we'll add!
__A:__ [Ask](/erkin/ponysay/issues) and we'll add!
__Q:__ Which programs do you use to generate the pony files?
__A:__ The pony files are actually mostly a bunch of selected [browser ponies](http://web.student.tuwien.ac.at/~e0427417/browser-ponies/ponies.html)
that are generated into cow files via [img2xterm](https://github.com/rossy2401/img2xterm) or [util-say](https://github.com/maandree/util-say).
that are generated into cow files via [img2xterm](/rossy2401/img2xterm) or [util-say](/maandree/util-say).

View file

@ -8,28 +8,18 @@ _ponysay()
options='-v -h -l -f -W -q'
COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
if [ $prev = "-f" ]; then
COMPREPLY=()
sysponies=/usr/share/ponysay/ponies/
usrponies=~/.local/share/ponysay/ponies/
if [[ $TERM = "linux" ]]; then
sysponies=/usr/share/ponysay/ttyponies/
usrponies=~/.local/share/ponysay/ttyponies/
fi
[ -d $sysponies ] && COMPREPLY+=( $( compgen -W "$(ls --color=no $sysponies | sed -e 's/.pony//g')" -- "$cur" ) )
[ -d $usrponies ] && COMPREPLY+=( $( compgen -W "$(ls --color=no $usrponies | sed -e 's/.pony//g')" -- "$cur" ) )
if [ $prev = "-f" ] || [ $prev = "--pony" ]; then
ponies=$('/usr/bin/ponysay.py' --onelist)
COMPREPLY=( $( compgen -W "$ponies" -- "$cur" ) )
elif [ $prev = "-W" ]; then
elif [ $prev = "-q" ] || [ $prev = "--quote" ]; then
quoters=$('/usr/bin/ponysay.py' --quoters)
COMPREPLY=( $( compgen -W "$quoters" -- "$cur" ) )
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 )
elif [ $prev = "-q" ]; then
qcmd=/usr/lib/ponysay/pq4ps
quoters=$($qcmd -l)
COMPREPLY=( $( compgen -W "$quoters" -- "$cur" ) )
fi
}

View file

@ -1,45 +1,21 @@
# Completions for ponysay
# FISH completions for ponysay
# https://github.com/erkin/ponysay/
#
# Author: Elis Axelsson <etu AT elis DOT nu>
if test $TERM = "linux"
set -g systempath /usr/share/ponysay/ttyponies/
set -g homepath ~/.local/share/ponysay/ttyponies/
else
set -g systempath /usr/share/ponysay/ponies/
set -g homepath ~/.local/share/ponysay/ponies/
end
set -g ponies (/usr/bin/ponysay.py --onelist)
set -g quoters (/usr/bin/ponysay.py --quoters)
if test -d $systempath
set -g systemponies (ls --color=no $systempath | sed -e 's/\.pony//' -e 's/_.*//' | perl -pe 's/([a-z])([A-Z])/\1\\\ \2/' )
end
complete --command ponysay --short-option h --long-option help --description 'help of ponysay'
complete --command ponysay --short-option v --long-option version --description 'version of ponysay'
complete --command ponysay --short-option l --long-option list --description 'list pony files'
complete --command ponysay --short-option L --long-option altlist --description 'list pony files with alternatives'
complete --command ponysay --short-option f --long-option pony --arguments "$ponies" --description 'pony'
complete --command ponysay --short-option q --long-option quote --arguments "$quoters" --no-files --description 'pony'
complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped'
complete --command ponysay --arguments 'MESSAGE'
if test -d $homepath
set -g homeponies (ls --color=no $homepath | sed -e 's/\.pony//' -e 's/_.*//' | perl -pe 's/([a-z])([A-Z])/\1\\\ \2/' )
end
set -g qcmd /usr/lib/ponysay/pq4ps
set -g quoters ($qcmd -l)
complete -c ponysay -s h --description "Help of ponysay"
complete -c ponysay -s v --description "Version of ponysay"
complete -c ponysay -s l --description "List pony files"
complete -c ponysay -s L --description "List pony files with alternatives"
complete -c ponysay -s f -a "$homeponies $systemponies" --description "Select a pony"
complete -c ponysay -s q -a "$quoters" --description "Select ponies for MLP:FiM quotes"
complete -c ponysay -s W -a "Integer" --description "The screen column where the message should be wrapped"
set -e systempath
set -e homepath
set -e systemponies
set -e homeponies
set -e qcmd
set -e ponies
set -e quoters

364
configure vendored Executable file
View file

@ -0,0 +1,364 @@
#!/usr/bin/env bash
PREFIX="/usr"
INFODESC=\''My Little Ponies for your terminal'\'
completions='completion/bash-completion.sh completion/fish-completion.fish completion/zsh-completion.zsh'
shareDirs='ponies ttyponies quotes'
manFiles='manuals/manpage.6 manuals/manpage.es.6'
licenseFiles='COPYING'
oldInstalledFiles='bin/ponysaytruncater lib/ponysay/list.pl lib/ponysay/linklist.pl lib/ponysay/pq4ps lib/ponysay/pq4ps.pl lib/ponysay/pq4ps-list lib/ponysay/pq4ps-list.pl'
oldInstalledDirs='share/ponies share/ttyponies'
oldCompiledFiles='ponysaytruncater ponysay.install'
oldCompiledDirs=''
installedFiles='bin/ponysay bin/ponythink bin/ponysay.py bin/ponythink.py doc/ponysay.pdf share/info/ponysay.info.gz share/info/ponythink.info.gz'
installedDirs='share/ponysay lib/ponysay'
compiledFiles='truncater ponysay.info.gz ponysay.py.install'
compiledDirs='quotes'
for man in $manFiles; do
oldCompiledFiles="$oldCompiledFiles $man.gz"
done
for completion in $completions; do
thinkfile="${completion%%.*}-think.${completion##*.}"
compiledFiles="$compiledFiles $completion.install $thinkfile"
done
for file in $licenseFiles; do
installedFiles="$installedFiles share/licenses/ponysay/$file"
done
function getcompdir()
{
if [ "$1" == 'bash' ]; then echo -n 'bash-completion/completions'
elif [ "$1" == 'fish' ]; then echo -n 'fish/completions'
elif [ "$1" == 'zsh' ]; then echo -n 'zsh/site-functions'
fi
}
function getcompfile()
{
if [ "$1" == 'bash' ]; then echo -n "$2"
elif [ "$1" == 'fish' ]; then echo -n "$2"'.fish'
elif [ "$1" == 'zsh' ]; then echo -n '_'"$2"
fi
}
installPdf=''
installInfo=' install-info'
installMan=' install-man'
installManEs=''
installBash=' install-bash'
installFish=' install-fish'
installZsh=' install-zsh'
for arg in "$@"; do
opt="${arg%%=*}"
val="${arg##*=}"
if [ "$opt" = '--prefix' ]; then
PREFIX="$val"
elif [ "$opt" = '--info-desc' ]; then
INFODESC=\'"$(sed -e s/\'/\''\\'\'\'/g <<<"$val")"\'
elif [ "$opt" = '--with-pdf' ]; then installPdf=' install-pdf'
elif [ "$opt" = '--without-info' ]; then installInfo=''
elif [ "$opt" = '--without-man' ]; then installMan=''
elif [ "$opt" = '--with-man-es' ]; then installManEs=' install-man-es'
elif [ "$opt" = '--without-bash' ]; then installBash=''
elif [ "$opt" = '--without-fish' ]; then installFish=''
elif [ "$opt" = '--without-zsh' ]; then installZsh=''
elif [ "$opt" = "--everything" ]; then
installPdf=' install-pdf'
installInfo=' install-info'
installMan=' install-man'
installManEs=' install-man-es'
installBash=' install-bash'
installFish=' install-fish'
installZsh=' install-zsh'
else
echo "$0: error: option not recongised: $arg" >&2
fi
done
compileMethods='core truncater manpages ponysaycompletion ponythinkcompletion'
installMethods='install-min'"$installPdf$installInfo$installMan$installManEs$installBash$installFish$installZsh"
if [ ! "$installInfo" = '' ]; then
compileMethods="$compileMethods infomanual"
fi
function correctPrefix()
{
for file in "$@"; do
echo -en '\t'
echo 'sed -e '\''s/'\''\'\'''\''\/usr\//'\''\'\''"$(SED_PREFIX)"'\''\//g'\'' < "'"$file"'" > "'"$file"'.install"'
done
}
function gzCompress()
{
for file in "$@"; do
echo -en '\t'
echo 'gzip -9 -f < "'"$file"'" > "'"$file"'".gz'
done
}
function thinkCompletion()
{
for file in "$@"; do
echo -en '\tsed'
echo -n ' -e '\''s/ponysay/ponythink/g'\'
echo -n ' < "'"$file"'.install" | sed'
echo -n ' -e '\''s/\/ponythink\//\/ponysay\//g'\'
echo -n ' -e '\''s/\\\/ponythink\\\//\\\/ponysay\\\//g'\'
thinkfile="${file%%.*}-think.${file##*.}"
echo ' > "'"$thinkfile"'"'
done
}
echo "PREFIX = $PREFIX, edit with option --prefix=PREFIX"
echo "INFODESC = $INFODESC, edit with option --info-desc=INFODESC"
echo
[ ! "$installPdf" = '' ] && echo "Installing PDF manual"
[ ! "$installInfo" = '' ] && echo "Installing info manual, add option --without-info to skip"
[ ! "$installMan" = '' ] && echo "Installing English manpage manual, add option --without-man to skip"
[ ! "$installManEs" = '' ] && echo "Installing Spanish manpage manual"
[ ! "$installBash" = '' ] && echo "Installing autocompletion for GNU Bash, add option --without-bash to skip"
[ ! "$installFish" = '' ] && echo "Installing autocompletion for fish, add option --without-fish to skip"
[ ! "$installZsh" = '' ] && echo "Installing autocompletion for zsh, add option --without-zsh to skip"
echo
[ ! "$installPdf" = '' ] || echo "Skipping PDF manual, add option --with-pdf to install"
[ ! "$installInfo" = '' ] || echo "Skipping info manual"
[ ! "$installMan" = '' ] || echo "Skipping English manpage manual"
[ ! "$installManEs" = '' ] || echo "Skipping Spanish manpage manual, add option --with-man-es to install"
[ ! "$installBash" = '' ] || echo "Skipping autocompletion for GNU Bash"
[ ! "$installFish" = '' ] || echo "Skipping autocompletion for fish"
[ ! "$installZsh" = '' ] || echo "Skipping autocompletion for zsh"
echo
function makeMakefile()
{
echo 'PREFIX='\'"$PREFIX"\'
echo 'INSTALLDIR="$(DESTDIR)$(PREFIX)"'
echo 'SED_PREFIX=$$(sed -e '\''s/\//\\\//g'\'' <<<$(PREFIX))'
echo
echo 'default: '"$compileMethods"
echo
echo 'all: core truncater quotes manpages infomanual ponysaycompletion ponythinkcompletion'
echo
echo "core:"
correctPrefix 'ponysay.py'
echo
echo "truncater:"
echo -en '\t'
echo '$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o "truncater" "truncater.c"'
echo
echo "quotes:"
echo -en '\t' ; echo 'mkdir -p quotes'
echo -en '\t' ; echo 'for ponies in $$(cat ponyquotes/ponies); do \'
echo -en '\t' ; echo ' for pony in $$(echo $$ponies | sed -e '\''s/+/ /g'\''); do \'
echo -en '\t' ; echo ' echo '\''Generating quote files for '\''"$$pony"; \'
echo -en '\t' ; echo ' for file in $$(ls "ponyquotes/" | grep "$$pony\\.*"); do \'
echo -en '\t' ; echo ' if [ -f "ponyquotes/$$file" ]; then \'
echo -en '\t' ; echo ' cp "ponyquotes/"$$file "quotes/"$$ponies'\''.'\''$$(echo $$file | cut -d '\''.'\'' -f 2) \'
echo -en '\t' ; echo ';fi;done;done;done'
echo
echo 'manpages:'
gzCompress $manFiles
echo
echo 'infomanual:'
echo -en '\t'
echo 'makeinfo "manuals/ponysay.texinfo"'
gzCompress 'ponysay.info'
echo
echo 'ponysaycompletion:'
correctPrefix $completions
echo
echo 'ponythinkcompletion: ponysaycompletion'
thinkCompletion $completions
echo
echo 'install-min: core truncater quotes'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/"'
for dir in $shareDirs; do
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/'"$dir"'"'
echo -en '\t' ; echo 'cp -P "'"$dir"'/"*.* "$(INSTALLDIR)/share/ponysay/'"$dir"'/"'
done
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/bin/"'
echo -en '\t' ; echo 'install "ponysay" "$(INSTALLDIR)/bin/ponysay"'
echo -en '\t' ; echo 'install "ponysay.py" "$(INSTALLDIR)/bin/ponysay.py"'
echo -en '\t' ; echo 'ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"'
echo -en '\t' ; echo 'ln -sf "ponysay.py" "$(INSTALLDIR)/bin/ponythink.py"'
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/lib/ponysay/"'
echo -en '\t' ; echo 'install -s "truncater" "$(INSTALLDIR)/lib/ponysay/truncater"'
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"'
for file in $licenseFiles; do
echo -en '\t'
echo 'install "'"$file"'" "$(INSTALLDIR)/share/licenses/ponysay/'"$file"'"'
done
echo
echo -en '\t' ; echo 'mkdir -p $(DESTDIR)/var/cache/ponysay/'
echo -en '\t' ; echo 'chmod 777 $(DESTDIR)/var/cache/ponysay/'
echo
for completion in $completions; do
shell="${completion##*/}"
shell="${shell%%-*}"
thinkfile="${completion%%.*}-think.${completion##*.}"
shelldir='share/'"$(getcompdir $shell)"'/'
echo 'install-'"$shell"': ponysaycompletion ponythinkcompletion'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/'"$shelldir"'"'
echo -en '\t' ; echo 'install "'"$completion"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponysay)"'"'
echo -en '\t' ; echo 'install "'"$thinkfile"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponythink)"'"'
echo
installedFiles="$installedFiles $shelldir$(getcompfile $shell ponysay) $shelldir$(getcompfile $shell ponythink)"
done
echo 'install-pdf:'
echo -en '\t'
echo 'install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"'
echo
echo 'install-info: infomanual'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/info"'
echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"'
echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"'
echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponysay.info.gz"'
echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponythink.info.gz"'
echo
for man in $manFiles; do
lang="${man##*manpage}"
lang="${lang%%.6}"
mandir="${lang/\.//}"
echo 'install-man'"${lang/\./-}"': manpages'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/man'"$mandir"'/man6"'
echo -en '\t' ; echo 'install "'"$man"'.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponysay.6.gz"'
echo -en '\t' ; echo 'ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponythink.6.gz"'
echo
installedFiles="$installedFiles share/man$mandir/man6/ponysay.6.gz share/man$mandir/man6/ponythink.6.gz"
done
echo
echo 'install: '"$installMethods"
echo -en '\t' ; echo '@echo -e \\n\\n\'
cat <<EOF
'/--------------------------------------------------\\\\\n'\\
'| ___ |\\n'\\
'| / (_) o |\\n'\\
'| \\__ _ _ __ |\\n'\\
'| / / |/ | | / \\_| | |\\n'\\
'| \\___/ | |_/|/\\__/ \\_/|/ |\\n'\\
'| /| /| |\\n'\\
'| \\| \\| |\\n'\\
'| ____ |\\n'\\
'| | _ \\ ___ _ __ _ _ ___ __ _ _ _ |\\n'\\
'| | |_) |/ _ \\ | '\\''_ \\ | | | |/ __| / _\` || | | | |\n'\\
'| | __/| (_) || | | || |_| |\\__ \\| (_| || |_| | |\\n'\\
'| |_| \\___/ |_| |_| \\__, ||___/ \\__,_| \\__, | |\\n'\\
'| |___/ |___/ |\\n'\\
'\\\\--------------------------------------------------/'
EOF
echo -en '\t' ; echo '@echo dummy | ./ponysay -f ./`if [[ "$$TERM" = "linux" ]]; then echo ttyponies; else echo ponies; fi`/pinkiecannon.pony | tail --lines=30 ; echo -e \\n'
echo
echo 'uninstall:'
echo -en '\t' ; echo 'if [ -d "$(DESTDIR)/var/cache/ponysay" ]; then rm -rf "$(INSTALLDIR)/var/cache/ponysay"; fi'
for old in $installedDirs; do
echo -en '\t'
echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
done
for old in $installedFiles; do
echo -en '\t'
echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
done
echo
echo 'clean:'
for old in $compiledDirs; do
echo -en '\t'
echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
done
for old in $compiledFiles; do
echo -en '\t'
echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
done
echo
echo 'uninstall-old:'
for old in $oldInstalledDirs; do
echo -en '\t'
echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
done
for old in $oldInstalledFiles; do
echo -en '\t'
echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
done
echo
echo 'clean-old:'
for old in $oldCompiledDirs; do
echo -en '\t'
echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
done
for old in $oldCompiledFiles; do
echo -en '\t'
echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
done
echo
cat <<EOF
## Scripts for maintainers
ttyponies:
mkdir -p "ttyponies"
for pony in \$\$(ls --color=no "ponies/"); do \\
echo "building ttypony: \$\$pony" ;\\
if [ \`readlink "ponies/\$\$pony"\` = "" ]; then \\
ponysay2ttyponysay < "ponies/\$\$pony" | tty2colourfultty -c 1 -e > "ttyponies/\$\$pony" ;\\
git add "ttyponies/\$\$pony" ;\\
elif [ ! -f "ttyponies/\$\$pony" ]; then \\
ln -s \`readlink "ponies/\$\$pony"\` "ttyponies/\$\$pony" ;\\
git add "ttyponies/\$\$pony" ;\\
fi \\
done
pdfmanual:
texi2pdf "manuals/ponysay.texinfo"
git add "manuals/ponysay.texinfo" "ponysay.pdf"
for ext in \`echo aux cp cps fn ky log pg toc tp vr\`; do \\
(if [ -f "ponysay.\$\$ext" ]; then unlink "ponysay.\$\$ext"; fi); \\
done
if [ -d "ponysay.t2d" ]; then rm -r "ponysay.t2d"; fi
EOF
}
makeMakefile > Makefile

View file

@ -1 +0,0 @@
../../ponysay

View file

@ -1 +0,0 @@
../../../linklist.pl

View file

@ -1 +0,0 @@
../../../list.pl

View file

@ -1 +0,0 @@
../../../pq4ps

View file

@ -1 +0,0 @@
../../../pq4ps-list.pl

View file

@ -1 +0,0 @@
../../../pq4ps.pl

View file

@ -1 +0,0 @@
../../../ponies

View file

@ -1 +0,0 @@
../../../quotes

View file

@ -1 +0,0 @@
../../../ttyponies

View file

@ -1,35 +0,0 @@
#!/usr/bin/perl
# ponysaylist
# Prints a list of ponies in columns
#
# Licensed under WTFPL
# See COPYING for details
# Author: Mattias Andrée, maandree@kth.se
# spider-mario
use strict;
use warnings;
use utf8;
my %hash;
{
local @ARGV = @ARGV;
while ((my ($source, $target), @ARGV) = @ARGV) {
unless ($source eq $target) {
push @{$hash{$target}}, $source;
}
}
}
while ((my ($source, $target), @ARGV) = @ARGV) {
if ($source eq $target) {
my @list = @{$hash{$source} // []};
print $source;
print ' (', join(' ', @list), ')' if @list;
print "\n";
}
}

41
list.pl
View file

@ -1,41 +0,0 @@
#!/usr/bin/env perl
# ponysaylist
# Prints a list of ponies in columns
#
# Licensed under WTFPL
# See COPYING for details
# Author: Mattias Andrée, maandree@kth.se
# spider-mario
use strict;
use warnings;
use utf8;
use feature qw(say);
use integer;
use List::Util qw(max);
my $scrw = shift @ARGV // 1;
#for (@ARGV) {
# # Format names from pony names
# s/(?<=[a-z])(?=[A-Z])/ /;
# s/_(.*)/\t($1)/;
#}
my $maxw = max 1, map {length} @ARGV;
my $cols = max 1, (($scrw + 2) / ($maxw + 2));
my @list = map {sprintf "%-${maxw}s", $_} @ARGV;
my $rows = (@list + $cols - 1) / $cols;
my @rowlist;
for my $i (0 .. $#list) {
push @{$rowlist[$i % $rows]}, $list[$i];
}
say join ' ', @$_ for @rowlist;

View file

@ -104,7 +104,8 @@ Bugs can be reported in <\fBhttps://github.com/erkin/ponysay/issues\fP>.
.br
.SH AUTHOR
ponysay was written by Erkin Batu Altunbaş <erkinbatu@gmail.com>
with major contributions from Mattias Andrée, Sven-Hendrik Haase, Jan Alexander Steffens et al.
with contributions from Mattias Andrée, Elis Axelsson, Sven-Hendrik Haase,
Pablo Lezaeta, Jan Alexander Steffens et al.
.\" See file CREDITS for full list.
.PP
This manual page was originally written by Louis Taylor <kragniz@gmail.com>

View file

@ -108,7 +108,8 @@ Los bugs pueden ser reportados en
.br
.SH AUTOR
ponysay fue escrito por Erkin Batu Altunbaş <erkinbatu@gmail.com>
con la ayuda de Mattias Andrée, Sven-Hendrik Haase, Jan Alexander Steffens y otros.
con la ayuda de Mattias Andrée, Elis Axelsson, Sven-Hendrik Haase,
Pablo Lezaeta, Jan Alexander Steffens y otros.
.\" vea el archivo CREDITS para la lista completa.
.PP
Este manual originalmente fue escrito por Louis Taylor <kragniz@gmail.com>

View file

@ -8,7 +8,7 @@
@documentlanguage en
@finalout
@c %**end of header
@set VERSION 1.4.1
@set VERSION 2.0
@copying
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}}.
@item -h
@itemx --help
@cindex @command{-h}
@cindex @command{--help}
Show summary of options.
@item -v
@item --verion
@cindex @command{-v}
@cindex @command{--version}
Show version of program.
@item -f PONY
@itemx --pony PONY
@cindex @command{-f}
@cindex @command{--pony}
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 relative path and does not include a `@code{/}', it must begin with
@ -133,8 +139,13 @@ a relative path and does not include a `@code{/}', it must begin with
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.
If you have @command{util-say} installed, you can use .png-files as the
arguments for this options.
@item -q [PONY...]
@itemx --quote [PONY...]
@cindex @command{-q}
@cindex @command{--quote}
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
is added as an argument after @command{-q}. If one or more ponies are added after
@ -143,19 +154,25 @@ This option requires the extension @command{ponyquotes4ponysay}, which
is included by default since version 1.2.
@item -W COLUMN
@itemx --wrap COLUMN
@cindex @command{-W}
@cindex @command{--wrap}
Specify the screen column where the message should be wrapped,
this is by default 40, which is inherited from @command{cowsay}.
@item -l
@itemx --list
@cindex @command{-l}
@cindex @command{--list}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
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
(depending on the terminal.)
@item -L
@itemx --linklist
@cindex @command{-L}
@cindex @command{--altlist}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
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
@ -226,7 +243,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
@code{~/.bashrc}, before @code{fortune | ponysay}:
@example
[[ "$TERM" = "linux" ]] &&
[ "$TERM" = "linux" ] &&
function ponysay
@{ exec ponysay "$@@"
#RESET PALETTE HERE
@ -249,7 +266,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
can be done by adding to your @code{~/.bashrc}:
@example
[[ "$TERM" = "xterm" ]] &&
[ "$TERM" = "xterm" ] &&
function screen
@{ export TERM="xterm-256color"
exec screen "$@@"
@ -303,10 +320,10 @@ are not running @command{ponysay} under TTY.
@cindex replace cowsay
If you want to use another program than @command{cowsay} (the first
@command{cowsay} found in @code{$PATH}), you can export @code{PONYSAY_COWSAY}
with the value of that program. If, and 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 introduced to make it easier to
customise cowsay.
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
patch with @code{use utf8;} to the beginning. The @code{use utf8;} patch is
introduced to make it easier to customise cowsay.
@code{PONYSAY_COWTHINK} will be used instead of @code{PONYSAY_COWSAY} if
you run @command{ponythink}.
@ -448,20 +465,14 @@ properties that makes a picture good.
@table @option
@item bash
Required for the main script [file: @command{ponysay}].
Required for the glue script.
@item cowsay
This is a wrapper for @command{cowsay}.
@item coreutils
The main script [file: @command{ponysay}] uses @command{stty}, @command{cut},
@command{ls}, @command{cat}, @command{sort}, @command{readlink}, @command{pwd},
@command{head} and @command{tail}.
@item sed
@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}.
@command{stty} is used to determine the size of the terminal,
other parts of Coreutils will not be needed for long
@item python
Python version 3 is the primary language of the program
@end table
@node Optional runtime dependencies
@ -470,19 +481,21 @@ Required to run @command{ponysay -l} and @command{ponysay -L}.
@cindex optional dependencies
@table @option
@item ponyquotes4ponysay
@cindex ponyquotes4ponysay
@cindex @command{-q}
For support of My Little Pony quotes with associated pony: the @code{-q} option.
It can be downloaded at @url{https://github.com/maandree/ponyquotes4ponysay}.
Since version 1.2, this module is included in ponysay. You can edit ponysay's
@code{Makefile} to remove it.
@item kmsponies4ponysay
@cindex kmsponies4ponysay
@item util-say
@cindex @command{util-say}
@cindex kms
@cindex tty
@cindex linux vt
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}.
@cindex png images
@cindex images, png
@cindex portable network graphics
For ther purpose of simplying for pony contributors, @command{ponysay}
supports using .png-images (note that the file must not miss the
@code{.png} in the file) in addition of .pony-files or pony names.
@end table
@ -499,6 +512,8 @@ Required to run the make script.
@item coreutils
The make script uses @command{install}, @command{unlink}, @command{rm}, @command{ln},
@command{mkdir} and @command{cp}.
@item sed
Used on the make system.
@item texinfo
@itemx info
@command{texinfo} and @command{info} are required if you want this @command{info} manual.
@ -543,7 +558,7 @@ It can be downloaded at @url{https://github.com/maandree/util-say}.
@menu
* Installations basics:: The basics of installations.
* Custom installations:: Installation customisations.
* Custom installations:: Installation customisation.
@end menu
@node Installations basics
@ -561,17 +576,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
@url{https://github.com/erkin/ponysay.git}.
In the terminal,@command{cd} into the ponysay directory and execute
@command{make install}. This will install @command{ponysay} into the
In the terminal, @command{cd} into the ponysay directory and execute
@command{./configure && make install}. This will install @command{ponysay} into the
@code{/usr}, meaning you may need to run @command{make install} as root,
e.g. by running @command{sudo make install}.
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!~"}.
@cindex manpage translations
@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
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
@ -579,42 +596,64 @@ in Spanish: @command{man -L es 6 ponysay}.
@cindex customised installations
@cindex installation customisation
@cindex make
@cindex @command{./configure}
@cindex configure
A basic installation will install everyting @command{ponysay} has to offer, except
the prebuild PDF manual. If you want to install the PDF manual, which is by default
installed as a @command{info} manual, you can run @command{make install-pdf}.
@command{make install-pdf} has no require means and will install the PDF manual, and
only the PDF manual, to @code{/usr/doc/ponysay.pdf}.
@cindex @command{--everything}
A basic installation will install everything @command{ponysay} has to offer, except
the prebuilt PDF manual and translated manpages. If you want to install exactly
everything add the option @command{--everything} when running @command{./configure}.
If you want to perform a regular installation, but without the @command{info} manual
you can run @command{make install-no-info}. It is also possible to install each part
independently; running @command{make install-min} will install the core of
@command{ponysay}, which is the minimal set that can installed without generating
errors or problems. After perform the core installaton whether are some other install
commands:
@cindex @command{--with-pdf}
@cindex PDF manual, with
@cindex @command{--without-man}
@cindex manpage, without
@cindex @command{--without-info}
@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
@item @command{make install-bash}
will install completion for @command{ponysay} and shell GNU Bash.
@item @command{make install-fish}
will install completion for @command{ponysay} and shell @command{fish}.
@item @command{make install-zsh}
will install completion for @command{ponysay} and shell @command{zsh}.
@item @command{make install-info}
will install the @command{info} manual, this will enable the command @command{info ponysay}.
@item @command{make install-man}
will install the English manpage, which is a small to the point manual that is
a bit more helpful @command{ponysay --help}. This will enable the command
@command{man ponysay} and @command{man 6 ponysay}.
@item @command{make install-man-es}
will install a Spanish translation of the manpage. To read it you execute
@command{man -L es ponysay} or @command{man -L es 6 ponysay}.
@item @command{--without-bash}
@cindex @command{--without-bash}
@cindex @command{bash}, without
will skip installation of auto-completion for @command{ponysay} and the
GNU Bourne-again shell, @command{bash}.
@item @command{--without-fish}
@cindex @command{--without-fish}
@cindex @command{fish}, without
will skip installation of auto-completion for @command{ponysay} and the
Friendly interactive shell, @command{fish}.
@item @command{--without-zsh}
@cindex @command{--without-zsh}
@cindex @command{zsh}, without
will skip installation of auto-completion for @command{ponysay} and the
shell @command{zsh}.
@end itemize
@cindex @command{--prefix=TARGET}
@cindex @code{/usr/games}
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
to install @command{ponysay} in @code{/usr/games} you build the program by
running @command{make PREFIX=/usr/games}, and alike for installation and uninstallation.
directory, you can add @command{--prefix=TARGET} when running @command{./configure}.
For example to install @command{ponysay} in @code{/usr/games} you build the
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
@ -622,8 +661,8 @@ running @command{make PREFIX=/usr/games}, and alike for installation and uninsta
@cindex arch linux
The official Arch Linux package repositories contains @command{ponysay} as
@code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding edge
git version of @command{ponysay} as @code{ponysay-git}.
@code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding
edge git version of @command{ponysay} as @code{ponysay-git}.
@node Gentoo Linux
@ -649,15 +688,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
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
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}.
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 +718,8 @@ are enabled when other packages are installed.
@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.
As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay}, but can easily
be removed, but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}.
As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay},
but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}.
@node kmsponies4ponysay
@ -700,7 +735,7 @@ be removed, but is still available at @url{https://github.com/maandree/ponyquote
@cindex .bashrc
@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
downloaded at @url{https://github.com/maandree/kmsponies4ponysay}.
@ -718,7 +753,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}
should, for example, contain:
@example
[[ "$TERM" = "linux" ]] &&
[ "$TERM" = "linux" ] &&
function ponysay
@{ export PONYSAY_KMS_PALETTE="`reset-palette`"
exec ponysay "$@@"
@ -727,6 +762,9 @@ should, for example, contain:
@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
@ -739,6 +777,7 @@ should, for example, contain:
* Printing in TTY with KMS:: Printing in TTY with KMS.
* Truncation:: Output truncation.
* Languages:: Selection of languages.
* Shell auto-completion:: Things make auto-completion simplier.
@end menu
@ -817,13 +856,37 @@ sequences after the first character after the initial escape if it is not either
@cindex script languages
@cindex programming languages
Ponysay is written primarily in GNU Bash shell script (POSIX compliant); the truncater
is however written in C, because it is simple, fast, does not pose addition dependencies,
and is easy to do byte hacking in.
Before version 2.0 @command{ponysay} was written primarily in GNU Bash script
(POSIX compliant); the truncater was however written in C, because it is simple,
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
is already required by cowsay, is similar to shell, but also supports hash tables.
[maandree: I actually learned Perl just for this.]
Sometimes shell is too slow, in these cases Perl was used; Perl was already
required by cowsay, is similar to shell, but also supports hash tables.
However since version 2.0 we are trying to move from all there languages
and only use Python 3.
@node Shell auto-completion
@section Shell auto-completion
@cindex auto-completion, inner workings
@cindex shell, auto-completion
@cindex @command{--onelist}
@cindex @command{--quoters}
To make it easier to write auto-completion for shells, @command{ponysay} supports
the two options @command{--onelist} and @command{--quoters}, which has not short
versions.
Executing @command{ponysay --onelist} will list every available pony,
independent of where it is located, the output is a sorted and consists only
of one pony per line.
@command{ponysay --quoters} work just as @command{ponysay --onelist}, excepts
it limites the ponies to those that have quotes. Ponies that have qoutes,
but does not exist, i.e. does not have a .pony-file, are not listed.
Auto-completion scripts should not suggest these options.
@ -892,6 +955,17 @@ To be able to run @command{make -B ttyponies} you must have the packages listed
@cindex versions
@cindex previous releases
@heading Version 2.0
@itemize @bullet
@item
Makefile is generated by running @command{./configure}.
@item
All Perl scripts and almost all Bash are reimplemented in one Python 3 script.
@item
kmsponies4ponysay is included.
@end itemize
@heading Version 1.4.1
@itemize @bullet
@ -1188,26 +1262,28 @@ First release.
@node Ponysay contributors
@appendix Ponysay contributors
Active developers of ponysay:
Active developers and major contributors of ponysay:
@itemize @bullet
@item Erkin Batu Altunbaş
@item Mattias Andrée
@item Sven-Hendrik Haase
@item Pablo Lezaeta
@item Jan Alexander Steffens
@item Erkin ``erkin'' Batu Altunbaş
@item Mattias ``maandree'' Andrée
@item Elis ``etu'' Axelsson
@item Sven-Hendrik ``svenstaro'' Haase
@item Pablo ``jristz'' Lezaeta
@item Jan Alexander ``heftig'' Steffens
@end itemize
@*
Patchers and other contributors of ponysay:
@itemize @bullet
@item Elis Axelsson
@item Duane Bekaert
@item Kyah Rindlisbacher
@item James Ross-Gowan
@item Louis Taylor
@item Jannis
@item Duane ``Marneus68'' Bekaert
@item Kyah ``L-four'' Rindlisbacher
@item James ``rossy2401'' Ross-Gowan
@item Louis ``kragniz'' Taylor
@item Jannis ``sycoso''
@item ``spider-mario''
@end itemize
@node Ponysay license
@appendix Ponysay license
@ -1219,11 +1295,15 @@ You have the four essential freedoms:
@item
The freedom to run the program, for any purpose (freedom 0).
@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
The freedom to redistribute copies so you can help your neighbour (freedom 2).
@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
@*

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more