Skip to content

Commit

Permalink
Bash completion for spreaper
Browse files Browse the repository at this point in the history
ref: #359
  • Loading branch information
michaelsembwever committed Mar 14, 2018
1 parent 4753909 commit 750a850
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/packaging/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ prepare:
mkdir -p build/etc/init.d
mkdir -p build/etc/cassandra-reaper
mkdir -p build/etc/cassandra-reaper/configs
mkdir -p build/etc/bash_completion.d
cp resource/cassandra-reaper.yaml build/etc/cassandra-reaper/
cp resource/shiro.ini build/etc/cassandra-reaper/configs
cp resource/cassandra-reaper*.yaml build/etc/cassandra-reaper/configs
cp ../server/target/cassandra-reaper-$(VERSION).jar build/usr/share/cassandra-reaper/
cp bin/* build/usr/local/bin/
cp etc/bash_completion.d/spreaper build/etc/bash_completion.d/
cp debian/reaper.init build/etc/init.d/cassandra-reaper
chmod 755 build/etc/init.d/cassandra-reaper

Expand Down
1 change: 1 addition & 0 deletions src/packaging/debian/cassandra-reaper-cli.install
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
bin/spreaper usr/bin
etc/bash_completion.d/spreaper etc/bash_completion.d
113 changes: 113 additions & 0 deletions src/packaging/etc/bash_completion.d/spreaper
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# spreaper(1) completion

_list_clusters()
{
clusters=$(spreaper -q list-clusters)
COMPREPLY=( $(compgen -W "${clusters}" -- ${cur}) )
}

_list_run_ids()
{
clusters=$(spreaper -q list-runs | jq -r '.[0].id')
COMPREPLY=( $(compgen -W "${clusters}" -- ${cur}) )
}

_list_schedule_ids()
{
clusters=$(spreaper -q list-schedules | jq -r '.[0].id')
COMPREPLY=( $(compgen -W "${clusters}" -- ${cur}) )
}

_spreaper()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev

case "$prev" in
-h|-v|-vv|-q|--verbose|--quiet|--reaper-port|--reaper-use-ssl)
;;
--reaper-host)
_known_hosts_real "$cur"
;;
list-clusters)
return 0
;;
list-runs)
_list_clusters "$cur"
return 0
;;
list-schedules)
_list_clusters "$cur"
return 0
;;
list-segments)
_list_run_ids "$cur"
return 0
;;
status-cluster)
_list_clusters "$cur"
return 0
;;
status-keyspace)
_list_clusters "$cur"
return 0
;;
status-repair)
_list_run_ids "$cur"
return 0
;;
status-schedule)
_list_schedule_ids "$cur"
return 0
;;
add-cluster)
_known_hosts_real "$cur"
return 0
;;
repair)
COMPREPLY=( $(compgen -W "" -- ${cur}) )
return 0
;;
schedule)
return 0
;;
resume-repair)
_list_run_ids "$cur"
return 0
;;
pause-repair)
_list_run_ids "$cur"
return 0
;;
update-repair)
_list_run_ids "$cur"
return 0
;;
abort-repair)
_list_run_ids "$cur"
return 0
;;
abort-segment)
return 0
;;
start-schedule)
_list_schedule_ids "$cur"
return 0
;;
pause-schedule)
_list_schedule_ids "$cur"
return 0
;;
delete-schedule)
_list_schedule_ids "$cur"
return 0
;;
ping)
return 0
;;
esac

COMPREPLY=( $( compgen -W ' -h -v --verbose -vv -q --quiet --reaper-host --reaper-port --reaper-use-ssl list-clusters list-runs list-schedules list-segments status-cluster status-keyspace status-repair status-schedule add-cluster repair schedule resume-repair pause-repair update-repair abort-repair abort-segment start-schedule pause-schedule delete-schedule ping' -- "$cur" ) )
} &&
complete -F _spreaper spreaper

0 comments on commit 750a850

Please sign in to comment.