are there any ponies

This commit is contained in:
Mattias Andrée 2012-08-18 16:55:57 +02:00
parent f9663c7b1b
commit fd099535cf
2 changed files with 19 additions and 35 deletions

View file

@ -27,21 +27,28 @@ The directory where ponysay is installed, this is modified when building with ma
INSTALLDIR = '/usr'
'''
The user's home directory
'''
HOME = os.environ['HOME']
'''
The directories where pony files are stored, ttyponies/ are used if the terminal is Linux VT (also known as TTY)
'''
ponydirs = []
if os.environ['TERM'] == 'linux': _ponydirs = [INSTALLDIR + '/share/ponysay/ttyponies/', os.environ['HOME'] + '/.local/share/ponysay/ttyponies/']
else: _ponydirs = [INSTALLDIR + '/share/ponysay/ponies/', os.environ['HOME'] + '/.local/share/ponysay/ponies/' ]
if os.environ['TERM'] == 'linux': _ponydirs = [INSTALLDIR + '/share/ponysay/ttyponies/', HOME + '/.local/share/ponysay/ttyponies/']
else: _ponydirs = [INSTALLDIR + '/share/ponysay/ponies/', HOME + '/.local/share/ponysay/ponies/' ]
for ponydir in _ponydirs:
if os.path.isdir(ponydir):
ponydirs.append(ponydir)
'''
The directories where quotes files are stored
'''
quotedirs = []
_quotedirs = [INSTALLDIR + '/share/ponysay/quotes/', os.environ['HOME'] + '/.local/share/ponysay/quotes/']
_quotedirs = [INSTALLDIR + '/share/ponysay/quotes/', HOME + '/.local/share/ponysay/quotes/']
for quotedir in _quotedirs:
if os.path.isdir(quotedir):
quotedirs.append(quotedir)
@ -251,12 +258,18 @@ class ponysay():
def print_pony(self, args):
ponycount = 0
for ponydir in ponydirs:
ponycount = len(os.listdir(ponydir))
if ponycount == 0:
sys.stderr.write('All the ponies are missing! Call the Princess!')
exit(1);
if args.message == None:
msg = sys.stdin.read().strip()
msg = sys.stdin.read()
else:
msg = args.message
if args.pony == None:
ponies = [] # Make array with direct paths to all ponies
for ponydir in ponydirs:
@ -264,7 +277,6 @@ class ponysay():
ponies.append(ponydir + ponyfile)
pony = ponies[random.randrange(0, len(ponies) - 1)] # Select random pony
else:
for ponydir in ponydirs:
if os.path.isfile(ponydir + args.pony[0]):

View file

@ -60,40 +60,12 @@ fi
# Marks ponies in lists that have quotes
qoutelist() {
bash -c "$("$qlistcmd" $("$quotecmd" --list))"
}
# Pony quotes
ponyquotes() {
[ "$TERM" = "-linux-" ] && TERM="linux"
"$0" ${wrap:+-W$wrap} $("$quotecmd" $@)
}
# Usage help print function
usage() {
version
cat <<EOF
Usage:
${0##*/} [options] [message]
If [message] is not provided, reads the message from STDIN.
Options:
-v Show version and exit.
-h Show this help and exit.
-l List pony files.
-L List pony files with synonyms inside brackets.
-q Use the pony quote feature.
-f[name] Select a pony (either a file name or a pony name.)
-W[column] The screen column where the message should be wrapped.
See man ponysay(6) for more information.
EOF
}
# Function for printing the ponies and the message
say() {
# Ponies use UTF-8 drawing characters. Prevent a Perl warning.