aboutsummaryrefslogtreecommitdiff
path: root/completion
diff options
context:
space:
mode:
Diffstat (limited to 'completion')
-rw-r--r--completion/bash-completion.sh33
-rw-r--r--completion/zsh-completion.zsh11
2 files changed, 44 insertions, 0 deletions
diff --git a/completion/bash-completion.sh b/completion/bash-completion.sh
new file mode 100644
index 0000000..82eb608
--- /dev/null
+++ b/completion/bash-completion.sh
@@ -0,0 +1,33 @@
+# bash completion for ponysay -*- shell-script -*-
+
+_ponysay()
+{
+ local cur prev words cword
+ _init_completion -n = || return
+
+ COMPREPLY=( $( compgen -W '-v -h -l -f -W' -- "$cur" ) )
+
+ if [[ $prev = "-f" ]]; then
+ COMPREPLY=()
+
+ sysponies=/usr/share/ponysay/ponies/
+ usrponies=~/.ponies/
+ if [[ $TERM = "linux" ]]; then
+ sysponies=/usr/share/ponysay/ttyponies/
+ usrponies=~/.ttyponies/
+ fi
+
+ if [[ -d $sysponies ]]; then
+ COMPREPLY+=( $( compgen -W "$(ls --color=no $sysponies | sed -e 's/.pony//g')" -- "$cur" ) )
+ fi
+ if [[ -d $usrponies ]]; then
+ COMPREPLY+=( $( compgen -W "$(ls --color=no $usrponies | sed -e 's/.pony//g')" -- "$cur" ) )
+ fi
+ elif [[ $prev = "-W" ]]; then
+ cols=$( echo `tput cols` - 10 | bc )
+ COMPREPLY=( $cols $( echo $cols / 2 | bc ) 100 60 )
+ fi
+}
+
+complete -o default -F _ponysay ponysay
+
diff --git a/completion/zsh-completion.zsh b/completion/zsh-completion.zsh
new file mode 100644
index 0000000..07b2ebf
--- /dev/null
+++ b/completion/zsh-completion.zsh
@@ -0,0 +1,11 @@
+#compdef ponysay
+_shortopts=(
+ '-v[Show version and exit]'
+ '-h[Show this help and exit]'
+ '-l[list ponyfiles]'
+ '-f[Select a pony (either a filename or a ponyname]: :_path_files -W "/usr/share/ponysay/ponies" -g "*(\:r)"'
+ '-W[The screen column where the message should be wrapped]'
+ )
+_arguments -s : \
+ "$_shortopts[@]"
+