mirror of https://github.com/apache/cassandra
Add tab-completion to debian nodetool packaging
patch by Cyril Scetbon; reviewed by mshuler for CASSANDRA-6421
This commit is contained in:
parent
a3effe6698
commit
0fdf2ddbf0
|
|
@ -1,4 +1,5 @@
|
|||
2.1.0-rc1
|
||||
* Add tab-completion to debian nodetool packaging (CASSANDRA-6421)
|
||||
* Change concurrent_compactors defaults (CASSANDRA-7139)
|
||||
* Add PowerShell Windows launch scripts (CASSANDRA-7001)
|
||||
* Make commitlog archive+restore more robust (CASSANDRA-6974)
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
debian/nodetool-completion nodetool
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
have nodetool && have cqlsh &&
|
||||
{
|
||||
|
||||
show_keyspaces()
|
||||
{
|
||||
local ks=$(get_keyspaces)
|
||||
COMPREPLY=( $(compgen -W "$ks" -- "$1") )
|
||||
}
|
||||
|
||||
get_keyspaces()
|
||||
{
|
||||
[ -z "$keyspaces" ] && keyspaces=$(echo "DESCRIBE KEYSPACES" | cqlsh | egrep -v '^$')
|
||||
echo $keyspaces
|
||||
}
|
||||
|
||||
show_datacenters()
|
||||
{
|
||||
cur=$1
|
||||
set|grep -q ^dcs || dcs=$(echo "select data_center from system.peers;"|cqlsh |tail -n +4|sort|uniq|awk '{if(length($1)>1) print $1}'|xargs)
|
||||
COMPREPLY=( $(compgen -W "$dcs" -- "$cur") )
|
||||
}
|
||||
|
||||
show_cfs()
|
||||
{
|
||||
local cur prev cfs
|
||||
prev=$1
|
||||
cur=$2
|
||||
cfs=$(get_cfs $1 $2)
|
||||
COMPREPLY=( $(compgen -W "$cfs" -- "$cur") )
|
||||
}
|
||||
|
||||
get_cfs()
|
||||
{
|
||||
local prev
|
||||
prev=$1
|
||||
[ -z "${cf[$prev]}" ] && cf[$prev]=$(echo "DESCRIBE COLUMNFAMILIES" | cqlsh -k ${prev} | egrep -v '^$')
|
||||
echo ${cf[$prev]}
|
||||
}
|
||||
|
||||
show_last_cfs()
|
||||
{
|
||||
local cur cfs re
|
||||
cur=$1
|
||||
re=$(echo ${COMP_WORDS[@]:3:$(($COMP_CWORD - 3))} | sed -e 's/ /\\|/g')
|
||||
cfs=$(get_cfs ${COMP_WORDS[2]} | sed -e "s/$re//g")
|
||||
COMPREPLY=( $(compgen -W "$cfs" -- "${cur}") )
|
||||
}
|
||||
|
||||
_nodetool()
|
||||
{
|
||||
local cur prev ks
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref cur prev
|
||||
|
||||
local shopt='
|
||||
cfstats
|
||||
compactionstats
|
||||
compactionhistory
|
||||
decommission
|
||||
describecluster
|
||||
disablebackup
|
||||
disablebinary
|
||||
disablegossip
|
||||
disablehandoff
|
||||
disablethrift
|
||||
drain
|
||||
enablebackup
|
||||
enablebinary
|
||||
enablegossip
|
||||
enablehandoff
|
||||
enablethrift
|
||||
getcompactionthroughput
|
||||
getlogginglevels
|
||||
getstreamthroughput
|
||||
gossipinfo
|
||||
help
|
||||
invalidatecountercache
|
||||
invalidatekeycache
|
||||
invalidaterowcache
|
||||
join
|
||||
listsnapshots
|
||||
pausehandoff
|
||||
proxyhistograms
|
||||
rangekeysample
|
||||
reloadtriggers
|
||||
resetlocalschema
|
||||
resumehandoff
|
||||
ring
|
||||
setlogginglevel
|
||||
status
|
||||
statusbinary
|
||||
statusthrift
|
||||
stopdaemon
|
||||
tpstats
|
||||
version
|
||||
'
|
||||
|
||||
local lngopt='
|
||||
cfhistograms
|
||||
cleanup
|
||||
clearsnapshot
|
||||
compact
|
||||
describering
|
||||
disableautocompaction
|
||||
enableautocompaction
|
||||
flush
|
||||
getcompactionthreshold
|
||||
getendpoints
|
||||
getsstables
|
||||
info
|
||||
move
|
||||
netstats
|
||||
rebuild
|
||||
rebuild_index
|
||||
refresh
|
||||
removenode
|
||||
repair
|
||||
scrub
|
||||
setcachecapacity
|
||||
setcachekeystosave
|
||||
setcompactionthreshold
|
||||
setcompactionthroughput
|
||||
setstreamthroughput
|
||||
settraceprobability
|
||||
snapshot
|
||||
stop
|
||||
taketoken
|
||||
truncatehints
|
||||
upgradesstables
|
||||
'
|
||||
|
||||
local optwks='
|
||||
cfhistograms
|
||||
cleanup
|
||||
clearsnapshot
|
||||
compact
|
||||
describering
|
||||
flush
|
||||
getcompactionthreshold
|
||||
getendpoints
|
||||
getsstables
|
||||
rebuild_index
|
||||
refresh
|
||||
repair
|
||||
scrub
|
||||
setcompactionthreshold
|
||||
snapshot
|
||||
'
|
||||
|
||||
local optwcfs='
|
||||
cleanup
|
||||
compact
|
||||
disableautocompaction
|
||||
enableautocompaction
|
||||
flush
|
||||
repair
|
||||
scrub
|
||||
upgradesstables
|
||||
'
|
||||
|
||||
if [[ $COMP_CWORD -eq 1 ]] ; then
|
||||
COMPREPLY=( $(compgen -W "${lngopt} ${shopt}" -- "${cur}") )
|
||||
elif [[ $(echo "${lngopt}"|egrep -c "\b${prev}\b") -gt 0 ]] ; then
|
||||
if echo $optwks|grep -q "\b$prev\b" ; then
|
||||
show_keyspaces "${cur}"
|
||||
else
|
||||
case "${prev}" in
|
||||
removenode)
|
||||
# we don't want to lose time using nodetool status a 2nd time
|
||||
# in case of force or status
|
||||
if [[ "${cur}" =~ ^(f|s) ]] ; then
|
||||
COMPREPLY=( $(compgen -W "status force" -- "${cur}") )
|
||||
else
|
||||
[ -z "$IDS" ] && IDS=$(nodetool status|grep %|awk '{print $7}'|xargs)
|
||||
COMPREPLY=( $(compgen -W "status force $IDS" -- "${cur}") )
|
||||
fi
|
||||
return 0
|
||||
;;
|
||||
stop)
|
||||
COMPREPLY=( $(compgen -W "COMPACTION VALIDATION CLEANUP SCRUB INDEX_BUILD" -- "${cur}") )
|
||||
return 0
|
||||
;;
|
||||
info)
|
||||
COMPREPLY=( $(compgen -W "-T --tokens" -- "${cur}") )
|
||||
return 0
|
||||
;;
|
||||
rebuild)
|
||||
show_datacenters "${cur}"
|
||||
return 0
|
||||
;;
|
||||
upgradesstables)
|
||||
ks=$(get_keyspaces)
|
||||
COMPREPLY=( $(compgen -W "-a --include-all-sstables $ks" -- "${cur}") )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
elif [[ $COMP_CWORD -eq 3 ]] ; then
|
||||
case "${COMP_WORDS[1]}" in
|
||||
cfhistograms|cleanup|compact|flush|getcompactionthreshold|getendpoints|getsstables|rebuild_index|refresh|repair|scrub|setcompactionthreshold)
|
||||
show_cfs ${prev} ${cur}
|
||||
return 0
|
||||
;;
|
||||
upgradesstables)
|
||||
if [[ ! ${prev} == -* ]]; then
|
||||
show_cfs ${prev} ${cur}
|
||||
fi
|
||||
return 0
|
||||
;;
|
||||
snapshot)
|
||||
COMPREPLY=( $(compgen -W "-cf" -- "${cur}") )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
elif [[ "${optwcfs}" == *${COMP_WORDS[1]}* ]] ; then
|
||||
show_last_cfs ${cur}
|
||||
elif [[ $COMP_CWORD -eq 4 && ${COMP_WORDS[1]} == "snapshot" ]] ; then
|
||||
show_cfs ${COMP_WORDS[2]} ${cur}
|
||||
elif [[ $COMP_CWORD -eq 5 && ${COMP_WORDS[1]} == "snapshot" ]] ; then
|
||||
COMPREPLY=( $(compgen -W "-t" -- "${cur}") )
|
||||
fi
|
||||
}
|
||||
complete -F _nodetool nodetool
|
||||
}
|
||||
|
|
@ -63,6 +63,7 @@ binary-indep: build install
|
|||
dh_installchangelogs
|
||||
dh_installinit -u'start 50 2 3 4 5 . stop 50 0 1 6 .'
|
||||
dh_installdocs README.asc CHANGES.txt NEWS.txt
|
||||
dh_bash-completion
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_installdeb
|
||||
|
|
|
|||
Loading…
Reference in New Issue