From 92ddcea20a473a8d59b1efaea94261b4b36fa35c Mon Sep 17 00:00:00 2001 From: Guillaume Rousse Date: Tue, 4 Sep 2012 20:37:13 +0200 Subject: [PATCH] gphoto2: new completion --- CHANGES | 3 ++ completions/gphoto2 | 51 ++++++++++++++++++++++++++++++++ test/completion/gphoto2.exp | 1 + test/lib/completions/gphoto2.exp | 18 +++++++++++ 4 files changed, 73 insertions(+) create mode 100644 completions/gphoto2 create mode 100644 test/completion/gphoto2.exp create mode 100644 test/lib/completions/gphoto2.exp diff --git a/CHANGES b/CHANGES index 17d582c3..496d62b4 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ + [ Guillaume Rousse ] + * gphoto2: new completion + bash-completion (2.0) [ Anthony Ramine ] diff --git a/completions/gphoto2 b/completions/gphoto2 new file mode 100644 index 00000000..02ddf785 --- /dev/null +++ b/completions/gphoto2 @@ -0,0 +1,51 @@ +# bash completion for gphoto2(1) -*- shell-script -*- + +_gphoto2() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --debug-logfile) + _filedir + return 0 + ;; + --hook-script) + _filedir + return 0 + ;; + --filename) + _filedir + return 0 + ;; + -u|--upload-file) + _filedir + return 0 + ;; + --port) + COMPREPLY=( $(compgen -W "$( gphoto2 --list-ports 2>/dev/null | \ + tail -n +4 | awk '{ print $1 }' )" -- "$cur") ) + return 0 + ;; + --camera) + local IFS=$'\n' + COMPREPLY=( $(compgen -W "$( gphoto2 --list-cameras 2>/dev/null | \ + tail -n +3 | awk -F'"' '{ print $2 }' )" -- "$cur") ) + return 0 + ;; + --get-config|--set-config|--set-config-index|--set-config-value) + COMPREPLY=( $(compgen -W "$( gphoto2 --list-config 2>/dev/null \ + )" -- "$cur") ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return 0 + fi + +} && +complete -F _gphoto2 gphoto2 + +# ex: ts=4 sw=4 et filetype=sh diff --git a/test/completion/gphoto2.exp b/test/completion/gphoto2.exp new file mode 100644 index 00000000..1eab94b0 --- /dev/null +++ b/test/completion/gphoto2.exp @@ -0,0 +1 @@ +assert_source_completions gphoto2 diff --git a/test/lib/completions/gphoto2.exp b/test/lib/completions/gphoto2.exp new file mode 100644 index 00000000..90dc1e5e --- /dev/null +++ b/test/lib/completions/gphoto2.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "gphoto2 --" +sync_after_int + + +teardown