From d9d58d3cae8b6606fcddc7378bdcbdee1c532fa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nirgal=20Vourg=C3=A8re?= Date: Tue, 22 Oct 2013 10:50:19 +0200 Subject: [PATCH] Added bash-completion snipets --- src/gmdb2/Makefile.am | 2 +- src/gmdb2/gmdb.bash-completion | 12 +++ src/util/Makefile.am | 1 + src/util/mdbtools.bash-completion | 170 ++++++++++++++++++++++++++++++ 4 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 src/gmdb2/gmdb.bash-completion create mode 100644 src/util/mdbtools.bash-completion diff --git a/src/gmdb2/Makefile.am b/src/gmdb2/Makefile.am index 31b6214..ecbc77e 100644 --- a/src/gmdb2/Makefile.am +++ b/src/gmdb2/Makefile.am @@ -14,4 +14,4 @@ LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la #if SQL #gmdb_LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la #endif -EXTRA_DIST = gmdb.desktop +EXTRA_DIST = gmdb.desktop gmdb.bash-completion diff --git a/src/gmdb2/gmdb.bash-completion b/src/gmdb2/gmdb.bash-completion new file mode 100644 index 0000000..1e24333 --- /dev/null +++ b/src/gmdb2/gmdb.bash-completion @@ -0,0 +1,12 @@ +#-*- mode: shell-script;-*- +have gmdb2 && +_gmdb2() +{ + local cur + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + _filedir '@(mdb|mdw|accdb)' + return 0 +} && +complete -F _gmdb2 gmdb2 diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 1a7a77b..084044a 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -7,3 +7,4 @@ LDADD = ../libmdb/libmdb.la if SQL mdb_sql_LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la $(LIBREADLINE) endif +EXTRA_DIST = mdbtools.bash-completion diff --git a/src/util/mdbtools.bash-completion b/src/util/mdbtools.bash-completion new file mode 100644 index 0000000..dabc3f7 --- /dev/null +++ b/src/util/mdbtools.bash-completion @@ -0,0 +1,170 @@ +#-*- mode: shell-script;-*- +have mdb-export && +_mdb_export() +{ + local cur prev + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -@(d|R|q|X|D|N) ]] ; then + return 0 + elif [[ "$prev" == -I ]] ; then + COMPREPLY=( $( compgen -W 'access sybase oracle postgres mysql' -- $cur ) ) + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-T -H -d -R -Q -q -X -I -D -N' -- $cur ) ) + elif [[ "$prev" == *@(mdb|mdw|accdb) ]] ; then + local dbname + local tablenames + dbname=$prev + __expand_tilde_by_ref dbname + tablenames=$(eval mdb-tables -S -d / "${dbname}" 2>/dev/null) + COMPREPLY=( $( IFS=/ compgen -W "${tablenames}" -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_export mdb-export + +have mdb-hexdump && +_mdb_hexdump() +{ + local cur + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + if (( COMP_CWORD == 1 )); then + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_hexdump mdb-hexdump + +have mdb-parsecsv && +_mdb_parsecsv() +{ + local cur + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + if (( COMP_CWORD == 1 )); then + _filedir '@(txt|csv)' + fi + return 0 +} && +complete -F _mdb_parsecsv mdb-parsecsv + +have mdb-prop && +_mdb_prop() +{ + local cur + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + if (( COMP_CWORD == 1 )); then + _filedir '@(mdb|mdw|accdb)' + elif (( COMP_CWORD == 2 )); then + local dbname + local tablenames + dbname=${COMP_WORDS[1]} + __expand_tilde_by_ref dbname + tablenames=$(eval mdb-tables -S -d / "${dbname}" 2>/dev/null) + COMPREPLY=( $( IFS=/ compgen -W "${tablenames}" -- $cur ) ) + elif (( COMP_CWORD == 3 )); then + COMPREPLY=( $( compgen -W 'Lv LvProp LvModule LvExtra' -- $cur ) ) + fi + return 0 +} && +complete -F _mdb_prop mdb-prop + +have mdb-schema && +_mdb_schema() +{ + local cur prev + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -@(T|table|N) ]] ; then + return 0 + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-T --table -N \ + --drop-table --no-drop-table \ + --not-null --no-not-null \ + --default-values --no-default-values \ + --not-empty --no-not-empty \ + --indexes --no-indexes \ + --relations --no-relations' -- $cur ) ) + elif [[ "$prev" == @(*mdb|*mdw|*accdb) ]]; then + COMPREPLY=( $( compgen -W 'access sybase oracle postgres mysql' -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_schema mdb-schema + +have mdb-sql && +_mdb_sql() +{ + local cur prev + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -d ]] ; then + return 0 + elif [[ "$prev" == -@(i|o) ]] ; then + _filedir + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-H -f -p -d -i -o' -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_sql mdb-sql + +have mdb-tables && +_mdb_tables() +{ + local cur prev + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$prev" == -d ]]; then + return 0 + elif [[ "$prev" == -t ]]; then + COMPREPLY=( $( compgen -W 'form table macro systable report query linkedtable module relationship dbprop any all' -- $cur ) ) + return 0 + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-S -1 -d -t' -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_tables mdb-tables + +have mdb-ver && +_mdb_ver() +{ + local cur + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-M' -- $cur ) ) + else + _filedir '@(mdb|mdw|accdb)' + fi + return 0 +} && +complete -F _mdb_ver mdb-ver