mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-09-19 18:47:54 +08:00
Quote shell special characters ...
... and add support for mdb-count mdb-json and mdb-queries
This commit is contained in:
@@ -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
|
||||
|
29
src/util/bash-completion/mdb-count
Normal file
29
src/util/bash-completion/mdb-count
Normal file
@@ -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
|
@@ -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
|
||||
|
@@ -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
|
||||
|
36
src/util/bash-completion/mdb-json
Normal file
36
src/util/bash-completion/mdb-json
Normal file
@@ -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
|
@@ -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
|
||||
|
36
src/util/bash-completion/mdb-queries
Normal file
36
src/util/bash-completion/mdb-queries
Normal file
@@ -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
|
Reference in New Issue
Block a user