mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-04 22:51:42 +02:00
50 lines
1.6 KiB
Text
50 lines
1.6 KiB
Text
#compdef sqlite sqlite3
|
|
|
|
local ret opt display_opt sqlite3
|
|
local -a options output_modes exclusive dashes
|
|
|
|
[[ $service = sqlite3 ]] && sqlite3=true || unset sqlite3
|
|
|
|
# sqlite options require a single hyphen, but
|
|
# sqlite3 allows options with one or two
|
|
dashes=( '' )
|
|
(( $+sqlite3 )) && dashes+=( - )
|
|
|
|
options=(
|
|
'(-init --init)'$^dashes'-init[startup file]:file containing SQLite commands:_files'
|
|
$^dashes'-echo[echo commands]'
|
|
)
|
|
|
|
exclusive=( {,-}-{no,}header )
|
|
options+=(
|
|
"($exclusive)"$^dashes'-header[turn headers on]'
|
|
"($exclusive)"$^dashes'-noheader[turn headers off]'
|
|
)
|
|
|
|
output_modes=( column HTML line list )
|
|
(( $+sqlite3 )) && output_modes+=( csv )
|
|
exclusive=( $^dashes-${^output_modes:l} )
|
|
for display_opt in $output_modes ; do
|
|
# finagle the description to match the way SQLite's -help formats them
|
|
opt=$display_opt:l
|
|
[[ $opt = $display_opt ]] && display_opt="'$display_opt'"
|
|
options+=( "($exclusive)"$^dashes"-${opt}[set output mode to $display_opt]" )
|
|
done
|
|
|
|
options+=(
|
|
$^dashes'-separator[set output field separator]:string to separate output fields:'
|
|
$^dashes'-nullvalue[set null value string]:string for NULL values:'
|
|
'(- :)'$^dashes'-version[show SQLite version]'
|
|
'(- :)'$^dashes'-help[show help]'
|
|
'1:SQLite database file:_files'
|
|
'(- :)2:SQL to run'
|
|
)
|
|
|
|
(( $+sqlite3 )) && options+=(
|
|
$^dashes'-bail[stop after hitting an error]'
|
|
'(-*batch -*interactive)'$^dashes'-batch[force batch I/O]'
|
|
'(-*batch -*interactive)'$^dashes'-interactive[force interactive I/O]'
|
|
$^dashes'-stats[print memory stats before each finalize]'
|
|
)
|
|
|
|
_arguments $options
|