diff options
author | Mattias Andrée <maandree@operamail.com> | 2012-07-20 09:18:02 -0700 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2012-07-20 09:18:02 -0700 |
commit | e8484739049b2a538c882c92d863d0616e1db168 (patch) | |
tree | d7278f77ad8ea18a131b9c0944deaa7cea385deb | |
parent | d9d620f9809c8079d8c13ed4794a41f9f5857277 (diff) | |
parent | e48e73ef4bdf505d44a3189043a948677377d6d7 (diff) | |
download | ponysay-e8484739049b2a538c882c92d863d0616e1db168.tar.gz ponysay-e8484739049b2a538c882c92d863d0616e1db168.tar.bz2 ponysay-e8484739049b2a538c882c92d863d0616e1db168.zip |
Merge pull request #42 from etu/master
Removed some echos and reindented the file
-rwxr-xr-x | ponysay | 321 |
1 files changed, 162 insertions, 159 deletions
@@ -8,28 +8,29 @@ pony="*" wrap="" if [ "$TERM" = "linux" ]; then - SYSTEMPONIES="/usr/share/ponysay/ttyponies" - HOMEPONIES="${HOME}/.local/share/ponysay/ttyponies" + SYSTEMPONIES="/usr/share/ponysay/ttyponies" + HOMEPONIES="${HOME}/.local/share/ponysay/ttyponies" fi if [[ "$PONYSAY_COWSAY" = "" ]]; then - cmd=cowsay - customcmd=0 + cmd=cowsay + customcmd=0 else - cmd="$PONYSAY_COWSAY" - customcmd=1 + cmd="$PONYSAY_COWSAY" + customcmd=1 fi + [[ ${0} == *ponythink ]] && - if [[ "$PONYSAY_COWTHINK" = "" ]]; then +if [[ "$PONYSAY_COWTHINK" = "" ]]; then cmd=cowthink customcmd=0 - else +else cmd="$PONYSAY_COWTHINK" customcmd=1 - fi +fi version() { - echo "ponysay v$version" + echo "ponysay v$version" } scrw=`(stty size <&2 || echo 0 0) | cut -d ' ' -f 2` @@ -38,49 +39,51 @@ truncatercmd="${SCRIPTDIR}/../lib/ponysay/truncater" haspq=1 if [[ -f './pq4ps-list' ]]; then - function qlist - { ./pq4ps-list - } + function qlist { + ./pq4ps-list + } elif [[ -f '/usr/bin/pq4ps-list' ]]; then - function qlist - { /usr/bin/pq4ps-list - } + function qlist { + /usr/bin/pq4ps-list + } else - haspq=0 - function qlist - { cat - } + haspq=0 + function qlist { + cat + } fi list() { - echo -e "\\e[01mponyfiles located in $SYSTEMPONIES:\\e[21m" - perl $listcmd $scrw $(ls --color=no $SYSTEMPONIES | sed -e 's/\.pony$//' | sort) | qlist - - if [[ -d $HOMEPONIES ]]; then - echo -e "\\e[01mponyfiles located in $HOMEPONIES:\\e[21m" - perl $listcmd $scrw $(ls --color=no $HOMEPONIES | sed -e 's/\.pony$//' | sort) | qlist - fi + echo -e "\\e[01mponyfiles located in $SYSTEMPONIES:\\e[21m" + perl $listcmd $scrw $(ls --color=no $SYSTEMPONIES | sed -e 's/\.pony$//' | sort) | qlist + + if [[ -d $HOMEPONIES ]]; then + echo -e "\\e[01mponyfiles located in $HOMEPONIES:\\e[21m" + perl $listcmd $scrw $(ls --color=no $HOMEPONIES | sed -e 's/\.pony$//' | sort) | qlist + fi } _linklist() { - echo -e "\\e[01mponyfiles located in $1:\\e[21m" - files=$(ls --color=no $1 | sed -e 's/\.pony$//' | sort) - - args="" - - for file in $files; do - target=$(readlink $1"/"$file".pony") - if [[ $target = "" ]]; then - target=$file - else - target=$(echo $target | sed -e 's/^\.\///g' -e 's/\.pony$//g') - fi - args=$(echo $args $file $target) - done - - scrw=`(stty size <&2 || echo 0 0) | cut -d ' ' -f 2` - - perl '/dev/stdin' $(echo $args) <<EOF | sed -e 's/ /_/g' > '/dev/shm/.ponysay~' + echo -e "\\e[01mponyfiles located in $1:\\e[21m" + files=$(ls --color=no $1 | sed -e 's/\.pony$//' | sort) + + args="" + + for file in $files; do + target=$(readlink $1"/"$file".pony") + + if [[ $target = "" ]]; then + target=$file + else + target=$(echo $target | sed -e 's/^\.\///g' -e 's/\.pony$//g') + fi + + args=$(echo $args $file $target) + done + + scrw=`(stty size <&2 || echo 0 0) | cut -d ' ' -f 2` + + perl '/dev/stdin' $(echo $args) <<EOF | sed -e 's/ /_/g' > '/dev/shm/.ponysay~' #!/usr/bin/perl #Author: Mattias Andrée (maandree@kth.se) @@ -146,21 +149,22 @@ while (\$i < \$argc) } } EOF - - perl $listcmd $scrw $(cat "/dev/shm/.ponysay~") | sed -e 's/_/ /g' | qlist - rm '/dev/shm/.ponysay~' + + perl $listcmd $scrw $(cat "/dev/shm/.ponysay~") | sed -e 's/_/ /g' | qlist + rm '/dev/shm/.ponysay~' } linklist() { - _linklist $SYSTEMPONIES - if [[ -d $HOMEPONIES ]]; then - _linklist $HOMEPONIES - fi + _linklist $SYSTEMPONIES + + if [[ -d $HOMEPONIES ]]; then + _linklist $HOMEPONIES + fi } usage() { - version - cat <<EOF + version + cat <<EOF Usage: ${0##*/} [options] [message] @@ -173,12 +177,14 @@ Options: -l List pony files. -L List pony files with synonyms inside brackets. EOF -if [[ $haspq = 1 ]]; then - cat <<EOF + + if [[ $haspq = 1 ]]; then + cat <<EOF -q Use the pony quote feature. EOF -fi -cat <<EOF + fi + + cat <<EOF -f[name] Select a pony (either a file name or a pony name.) -W[column] The screen column where the message should be wrapped. @@ -188,144 +194,141 @@ EOF # if no stdin and no arguments then print usage and exit if [[ -t 0 && $# == 0 ]]; then - usage - exit + usage + exit fi say() { - # Ponies use UTF-8 drawing characters. Prevent a Perl warning. - export PERL_UNICODE=S - - if [ "$TERM" = "linux" ]; then - echo -ne '\e[H\e[2J' - fi - - function wtrunc - { - if [ "$PONYSAY_FULL_WIDTH" = 'yes' ] || [ "$PONYSAY_FULL_WIDTH" = 'y' ] || [ "$PONYSAY_FULL_WIDTH" = '1' ]; then - cat - else - WIDTH=`(stty size <&2 || echo 0 0) | cut -d ' ' -f 2` - $truncatercmd $WIDTH 2>/dev/null || cat + # Ponies use UTF-8 drawing characters. Prevent a Perl warning. + export PERL_UNICODE=S + + if [ "$TERM" = "linux" ]; then + echo -ne '\e[H\e[2J' fi - } - - if [ "$PONYSAY_SHELL_LINES" = "" ]; then - PONYSAY_SHELL_LINES=2 - fi - function htrunchead - { - head --lines=$(( `stty size <&2 | cut -d ' ' -f 1` - $PONYSAY_SHELL_LINES )) - } - function htrunctail - { - tail --lines=$(( `stty size <&2 | cut -d ' ' -f 1` - $PONYSAY_SHELL_LINES )) - } - - if [[ $customcmd = 0 ]]; then - function cowcmd - { - echo "standrd $cmd" - pcmd='#!/usr/bin/perl\nuse utf8;' - ccmd=$(for c in $(echo $PATH":" | sed -e 's/:/\/'"$cmd"' /g'); do if [[ -f $c ]]; then echo $c; break; fi done) - echo "is $cmd" - if [[ ${0} == *ponythink ]]; then - cat <(echo -e $pcmd) $ccmd > "/dev/shm/.ponythink" - perl '/dev/shm/.ponythink' "$@" - rm '/dev/shm/.ponythink' - else - perl <(cat <(echo -e $pcmd) $ccmd) "$@" - fi + + function wtrunc { + if [ "$PONYSAY_FULL_WIDTH" = 'yes' ] || [ "$PONYSAY_FULL_WIDTH" = 'y' ] || [ "$PONYSAY_FULL_WIDTH" = '1' ]; then + cat + else + WIDTH=`(stty size <&2 || echo 0 0) | cut -d ' ' -f 2` + $truncatercmd $WIDTH 2>/dev/null || cat + fi } - else - function cowcmd - { - echo "custom $cmd" - $cmd "$@" + + if [ "$PONYSAY_SHELL_LINES" = "" ]; then + PONYSAY_SHELL_LINES=2 + fi + + function htrunchead { + head --lines=$(( `stty size <&2 | cut -d ' ' -f 1` - $PONYSAY_SHELL_LINES )) + } + + function htrunctail { + tail --lines=$(( `stty size <&2 | cut -d ' ' -f 1` - $PONYSAY_SHELL_LINES )) } - fi - - if [ "$TERM" = "linux" ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'yes' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'y' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = '1' ]; then - if [ "$PONYSAY_BOTTOM" = 'yes' ] || [ "$PONYSAY_BOTTOM" = 'y' ] || [ "$PONYSAY_BOTTOM" = '1' ]; then - cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc | htrunctail + + if [[ $customcmd = 0 ]]; then + function cowcmd { + pcmd='#!/usr/bin/perl\nuse utf8;' + ccmd=$(for c in $(echo $PATH":" | sed -e 's/:/\/'"$cmd"' /g'); do if [[ -f $c ]]; then echo $c; break; fi done) + + if [[ ${0} == *ponythink ]]; then + cat <(echo -e $pcmd) $ccmd > "/dev/shm/.ponythink" + perl '/dev/shm/.ponythink' "$@" + rm '/dev/shm/.ponythink' + else + perl <(cat <(echo -e $pcmd) $ccmd) "$@" + fi + } + else + function cowcmd { + echo "custom $cmd" + $cmd "$@" + } + fi + + if [ "$TERM" = "linux" ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'yes' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = 'y' ] || [ "$PONYSAY_TRUNCATE_HEIGHT" = '1' ]; then + if [ "$PONYSAY_BOTTOM" = 'yes' ] || [ "$PONYSAY_BOTTOM" = 'y' ] || [ "$PONYSAY_BOTTOM" = '1' ]; then + cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc | htrunctail + else + cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc | htrunchead + fi else - cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc | htrunchead + cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc fi - else - cowcmd -f "$pony" "${wrap:+-W$wrap}" | wtrunc - fi } ponies=() opts="f:W:Llhv" if [[ $haspq ]]; then - opts=$opts"q" + opts=$opts"q" fi + usepq=0 -while getopts $opts OPT -do - case ${OPT} in - v) version; exit ;; - h) usage; exit ;; - f) ponies+=( "$OPTARG" ) ;; - l) list; exit ;; - L) linklist; exit ;; - W) wrap="$OPTARG" ;; - q) usepq=1 ;; - \?) usage >&2; exit 1 ;; - esac +while getopts $opts OPT; do + case ${OPT} in + v) version; exit ;; + h) usage; exit ;; + f) ponies+=( "$OPTARG" ) ;; + l) list; exit ;; + L) linklist; exit ;; + W) wrap="$OPTARG" ;; + q) usepq=1 ;; + \?) usage >&2; exit 1 ;; + esac done shift $((OPTIND - 1)) if [[ $usepq = 1 ]]; then - if [[ -f './pq4ps' ]]; then - function q - { ./pq4ps $@ - } - elif [[ -f '/usr/bin/pq4ps' ]]; then - function q - { /usr/bin/pq4ps $@ - } - fi - $0 ${wrap:+-W$wrap} $(q "$*") - exit + if [[ -f './pq4ps' ]]; then + function q { + ./pq4ps $@ + } + elif [[ -f '/usr/bin/pq4ps' ]]; then + function q { + /usr/bin/pq4ps $@ + } + fi + $0 ${wrap:+-W$wrap} $(q "$*") + exit fi hash $cmd &>/dev/null; if [ $? -ne 0 ]; then - cat >&2 <<EOF + cat >&2 <<EOF You don't seem to have the $cmd program. Please install it in order to use this wrapper. Alternatively, symlink it to '$cmd' in anywhere in \$PATH if it actually exists under a different filename. EOF - exit 1 + exit 1 fi if [[ ! ${#ponies[@]} == 0 ]]; then - pony="${ponies[$RANDOM%${#ponies[@]}]}" + pony="${ponies[$RANDOM%${#ponies[@]}]}" fi if [[ ! -f $pony ]]; then - # Pony not a file? Search for it - - ponies=() - [[ -d $SYSTEMPONIES ]] && ponies+=( "$SYSTEMPONIES"/$pony.pony ) - [[ -d $HOMEPONIES ]] && ponies+=( "$HOMEPONIES"/$pony.pony ) - - if (( ${#ponies} < 1 )); then - echo >&2 "All the ponies are missing! Call the Princess!" - exit 1 - fi - - # Choose a random pony - pony="${ponies[$RANDOM%${#ponies[@]}]}" + # Pony not a file? Search for it + + ponies=() + [[ -d $SYSTEMPONIES ]] && ponies+=( "$SYSTEMPONIES"/$pony.pony ) + [[ -d $HOMEPONIES ]] && ponies+=( "$HOMEPONIES"/$pony.pony ) + + if (( ${#ponies} < 1 )); then + echo >&2 "All the ponies are missing! Call the Princess!" + exit 1 + fi + + # Choose a random pony + pony="${ponies[$RANDOM%${#ponies[@]}]}" fi if [[ -n "$*" ]]; then - # Handle a message given via arguments - say <<<"$*" + # Handle a message given via arguments + say <<<"$*" else - say + say fi + |