diff --git a/src/util/bash-completion/Makefile.am b/src/util/bash-completion/Makefile.am index 411ec40..682050c 100644 --- a/src/util/bash-completion/Makefile.am +++ b/src/util/bash-completion/Makefile.am @@ -1,4 +1,4 @@ if ENABLE_BASH_COMPLETION bashcompletiondir = $(BASH_COMPLETION_DIR) -dist_bashcompletion_DATA = mdb-export mdb-hexdump mdb-import mdb-parsecsv mdb-prop mdb-schema mdb-sql mdb-tables mdb-ver +dist_bashcompletion_DATA = mdb-count mdb-export mdb-hexdump mdb-import mdb-json mdb-parsecsv mdb-prop mdb-queries mdb-schema mdb-sql mdb-tables mdb-ver endif diff --git a/src/util/bash-completion/mdb-count b/src/util/bash-completion/mdb-count new file mode 100644 index 0000000..1513d6b --- /dev/null +++ b/src/util/bash-completion/mdb-count @@ -0,0 +1,29 @@ +#-*- mode: shell-script;-*- +_mdb_count() +{ + local cur prev + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == *@(mdb|mdw|accdb) ]] ; then + local dbname + local tablenames + local tablename + dbname=$prev + __expand_tilde_by_ref dbname + local IFS=$'\n' + tablenames="" + while read tablename + do + #shell-quote each line + tablenames="$tablenames"$'\n'"$(printf %q "${tablename}")" + done < <(eval mdb-tables -S -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${tablenames}" -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_count mdb-count diff --git a/src/util/bash-completion/mdb-export b/src/util/bash-completion/mdb-export index b31924b..f746cc8 100644 --- a/src/util/bash-completion/mdb-export +++ b/src/util/bash-completion/mdb-export @@ -23,10 +23,18 @@ _mdb_export() elif [[ "$prev" == *@(mdb|mdw|accdb) ]] ; then local dbname local tablenames + local tablename dbname=$prev __expand_tilde_by_ref dbname - tablenames=$(eval mdb-tables -S -d / "${dbname}" 2>/dev/null) - COMPREPLY=( $( IFS=/ compgen -W "${tablenames}" -- $cur ) ) + local IFS=$'\n' + tablenames="" + while read tablename + do + #shell-quote each line + tablenames="$tablenames"$'\n'"$(printf %q "${tablename}")" + done < <(eval mdb-tables -S -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${tablenames}" -- $cur ) ) else _filedir '@(mdb|mdw|accdb)' fi diff --git a/src/util/bash-completion/mdb-import b/src/util/bash-completion/mdb-import index c8184b7..88b29c4 100644 --- a/src/util/bash-completion/mdb-import +++ b/src/util/bash-completion/mdb-import @@ -16,10 +16,18 @@ _mdb_import() elif [[ "$prev" == @(*mdb|*mdw|*accdb) ]]; then local dbname local tablenames + local tablename dbname=$prev __expand_tilde_by_ref dbname - tablenames=$(eval mdb-tables -S -d / "${dbname}" 2>/dev/null) - COMPREPLY=( $( IFS=/ compgen -W "${tablenames}" -- $cur ) ) + local IFS=$'\n' + tablenames="" + while read tablename + do + #shell-quote each line + tablenames="$tablenames"$'\n'"$(printf %q "${tablename}")" + done < <(eval mdb-tables -S -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${tablenames}" -- $cur ) ) else _filedir '@(mdb|mdw|accdb|txt|csv)' fi diff --git a/src/util/bash-completion/mdb-json b/src/util/bash-completion/mdb-json new file mode 100644 index 0000000..beb201f --- /dev/null +++ b/src/util/bash-completion/mdb-json @@ -0,0 +1,36 @@ +#-*- mode: shell-script;-*- +_mdb_json() +{ + local cur prev + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -@(D|-date-format|T|-datetime-format|U|--no-unprintable|h|-help) ]] ; then + return 0 + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h -D -T -U \ + --date-format --datetime-format \ + --no-unprintable \ + --help' -- $cur ) ) + elif [[ "$prev" == *@(mdb|mdw|accdb) ]] ; then + local dbname + local tablenames + local tablename + dbname=$prev + __expand_tilde_by_ref dbname + local IFS=$'\n' + tablenames="" + while read tablename + do + #shell-quote each line + tablenames="$tablenames"$'\n'"$(printf %q "${tablename}")" + done < <(eval mdb-tables -S -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${tablenames}" -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_json mdb-json diff --git a/src/util/bash-completion/mdb-prop b/src/util/bash-completion/mdb-prop index 12aece2..4f9d7bf 100644 --- a/src/util/bash-completion/mdb-prop +++ b/src/util/bash-completion/mdb-prop @@ -11,10 +11,18 @@ _mdb_prop() elif (( COMP_CWORD == 2 )); then local dbname local tablenames - dbname=${COMP_WORDS[1]} + local tablename + dbname=$prev __expand_tilde_by_ref dbname - tablenames=$(eval mdb-tables -S -d / "${dbname}" 2>/dev/null) - COMPREPLY=( $( IFS=/ compgen -W "${tablenames}" -- $cur ) ) + local IFS=$'\n' + tablenames="" + while read tablename + do + #shell-quote each line + tablenames="$tablenames"$'\n'"$(printf %q "${tablename}")" + done < <(eval mdb-tables -S -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${tablenames}" -- $cur ) ) elif (( COMP_CWORD == 3 )); then COMPREPLY=( $( compgen -W 'Lv LvProp LvModule LvExtra' -- $cur ) ) fi diff --git a/src/util/bash-completion/mdb-queries b/src/util/bash-completion/mdb-queries new file mode 100644 index 0000000..1ea920f --- /dev/null +++ b/src/util/bash-completion/mdb-queries @@ -0,0 +1,36 @@ +#-*- mode: shell-script;-*- +_mdb_queries() +{ + local cur prev + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -@(d) ]]; then + return 0 + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-L\ + -1 \ + -d' -- $cur ) ) + elif [[ "$prev" == *@(mdb|mdw|accdb) ]] ; then + local dbname + local querynames + local queryname + dbname=$prev + __expand_tilde_by_ref dbname + local IFS=$'\n' + querynames="" + while read queryname + do + #shell-quote each line + querynames="$querynames"$'\n'"$(printf %q "${queryname}")" + done < <(eval mdb-queries -1 "${dbname}" 2>/dev/null) + compopt -o filenames + COMPREPLY=( $( compgen -W "${querynames}" -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_queries mdb-queries