mirror of
https://github.com/ohmybash/oh-my-bash.git
synced 2024-09-21 10:27:09 +00:00
completions/fallback: Adjust docker completions
This commit is contained in:
parent
f4e6a26884
commit
065071b598
@ -1,4 +1,13 @@
|
||||
#!/bin/bash
|
||||
#! bash oh-my-bash.module
|
||||
#------------------------------------------------------------------------------
|
||||
# Note by OMB: This file is taken from the following version of Docker Compose
|
||||
# v1:
|
||||
#
|
||||
# https://github.com/docker/compose/blob/30fcb72cf3b136598883752edfa6ea4f3b8643d4/contrib/completion/bash/docker-compose
|
||||
#
|
||||
# Licence: Apache-2.0 license
|
||||
# Copyright: original authors of Docker Compose v1
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# bash completion for docker-compose
|
||||
#
|
||||
@ -19,13 +28,13 @@
|
||||
__docker_compose_previous_extglob_setting=$(shopt -p extglob)
|
||||
shopt -s extglob
|
||||
|
||||
__docker_compose_q() {
|
||||
function __docker_compose_q {
|
||||
docker-compose 2>/dev/null "${top_level_options[@]}" "$@"
|
||||
}
|
||||
|
||||
# Transforms a multiline list of strings into a single line string
|
||||
# with the words separated by "|".
|
||||
__docker_compose_to_alternatives() {
|
||||
function __docker_compose_to_alternatives {
|
||||
local parts=( $1 )
|
||||
local IFS='|'
|
||||
echo "${parts[*]}"
|
||||
@ -33,14 +42,14 @@ __docker_compose_to_alternatives() {
|
||||
|
||||
# Transforms a multiline list of options into an extglob pattern
|
||||
# suitable for use in case statements.
|
||||
__docker_compose_to_extglob() {
|
||||
function __docker_compose_to_extglob {
|
||||
local extglob=$( __docker_compose_to_alternatives "$1" )
|
||||
echo "@($extglob)"
|
||||
}
|
||||
|
||||
# Determines whether the option passed as the first argument exist on
|
||||
# the commandline. The option may be a pattern, e.g. `--force|-f`.
|
||||
__docker_compose_has_option() {
|
||||
function __docker_compose_has_option {
|
||||
local pattern="$1"
|
||||
for (( i=2; i < $cword; ++i)); do
|
||||
if [[ ${words[$i]} =~ ^($pattern)$ ]] ; then
|
||||
@ -53,7 +62,7 @@ __docker_compose_has_option() {
|
||||
# Returns `key` if we are currently completing the value of a map option (`key=value`)
|
||||
# which matches the extglob passed in as an argument.
|
||||
# This function is needed for key-specific completions.
|
||||
__docker_compose_map_key_of_current_option() {
|
||||
function __docker_compose_map_key_of_current_option {
|
||||
local glob="$1"
|
||||
|
||||
local key glob_pos
|
||||
@ -76,34 +85,34 @@ __docker_compose_map_key_of_current_option() {
|
||||
}
|
||||
|
||||
# suppress trailing whitespace
|
||||
__docker_compose_nospace() {
|
||||
function __docker_compose_nospace {
|
||||
# compopt is not available in ancient bash versions
|
||||
type compopt &>/dev/null && compopt -o nospace
|
||||
_omb_util_command_exists compopt && compopt -o nospace
|
||||
}
|
||||
|
||||
|
||||
# Outputs a list of all defined services, regardless of their running state.
|
||||
# Arguments for `docker-compose ps` may be passed in order to filter the service list,
|
||||
# e.g. `status=running`.
|
||||
__docker_compose_services() {
|
||||
function __docker_compose_services {
|
||||
__docker_compose_q ps --services "$@"
|
||||
}
|
||||
|
||||
# Applies completion of services based on the current value of `$cur`.
|
||||
# Arguments for `docker-compose ps` may be passed in order to filter the service list,
|
||||
# see `__docker_compose_services`.
|
||||
__docker_compose_complete_services() {
|
||||
function __docker_compose_complete_services {
|
||||
COMPREPLY=( $(compgen -W "$(__docker_compose_services "$@")" -- "$cur") )
|
||||
}
|
||||
|
||||
# The services for which at least one running container exists
|
||||
__docker_compose_complete_running_services() {
|
||||
function __docker_compose_complete_running_services {
|
||||
local names=$(__docker_compose_services --filter status=running)
|
||||
COMPREPLY=( $(compgen -W "$names" -- "$cur") )
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_build() {
|
||||
function _docker_compose_build {
|
||||
case "$prev" in
|
||||
--build-arg)
|
||||
COMPREPLY=( $( compgen -e -- "$cur" ) )
|
||||
@ -126,7 +135,7 @@ _docker_compose_build() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_config() {
|
||||
function _docker_compose_config {
|
||||
case "$prev" in
|
||||
--hash)
|
||||
if [[ $cur == \\* ]] ; then
|
||||
@ -142,7 +151,7 @@ _docker_compose_config() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_create() {
|
||||
function _docker_compose_create {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--build --force-recreate --help --no-build --no-recreate" -- "$cur" ) )
|
||||
@ -154,7 +163,7 @@ _docker_compose_create() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_docker_compose() {
|
||||
function _docker_compose_docker_compose {
|
||||
case "$prev" in
|
||||
--tlscacert|--tlscert|--tlskey)
|
||||
_filedir
|
||||
@ -200,7 +209,7 @@ _docker_compose_docker_compose() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_down() {
|
||||
function _docker_compose_down {
|
||||
case "$prev" in
|
||||
--rmi)
|
||||
COMPREPLY=( $( compgen -W "all local" -- "$cur" ) )
|
||||
@ -219,7 +228,7 @@ _docker_compose_down() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_events() {
|
||||
function _docker_compose_events {
|
||||
case "$prev" in
|
||||
--json)
|
||||
return
|
||||
@ -237,7 +246,7 @@ _docker_compose_events() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_exec() {
|
||||
function _docker_compose_exec {
|
||||
case "$prev" in
|
||||
--index|--user|-u|--workdir|-w)
|
||||
return
|
||||
@ -255,11 +264,11 @@ _docker_compose_exec() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_help() {
|
||||
function _docker_compose_help {
|
||||
COMPREPLY=( $( compgen -W "${commands[*]}" -- "$cur" ) )
|
||||
}
|
||||
|
||||
_docker_compose_images() {
|
||||
function _docker_compose_images {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help --quiet -q" -- "$cur" ) )
|
||||
@ -270,7 +279,7 @@ _docker_compose_images() {
|
||||
esac
|
||||
}
|
||||
|
||||
_docker_compose_kill() {
|
||||
function _docker_compose_kill {
|
||||
case "$prev" in
|
||||
-s)
|
||||
COMPREPLY=( $( compgen -W "SIGHUP SIGINT SIGKILL SIGUSR1 SIGUSR2" -- "$(echo $cur | tr '[:lower:]' '[:upper:]')" ) )
|
||||
@ -289,7 +298,7 @@ _docker_compose_kill() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_logs() {
|
||||
function _docker_compose_logs {
|
||||
case "$prev" in
|
||||
--tail)
|
||||
return
|
||||
@ -307,7 +316,7 @@ _docker_compose_logs() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_pause() {
|
||||
function _docker_compose_pause {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help" -- "$cur" ) )
|
||||
@ -319,7 +328,7 @@ _docker_compose_pause() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_port() {
|
||||
function _docker_compose_port {
|
||||
case "$prev" in
|
||||
--protocol)
|
||||
COMPREPLY=( $( compgen -W "tcp udp" -- "$cur" ) )
|
||||
@ -341,7 +350,7 @@ _docker_compose_port() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_ps() {
|
||||
function _docker_compose_ps {
|
||||
local key=$(__docker_compose_map_key_of_current_option '--filter')
|
||||
case "$key" in
|
||||
source)
|
||||
@ -373,7 +382,7 @@ _docker_compose_ps() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_pull() {
|
||||
function _docker_compose_pull {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help --ignore-pull-failures --include-deps --no-parallel --quiet -q" -- "$cur" ) )
|
||||
@ -385,7 +394,7 @@ _docker_compose_pull() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_push() {
|
||||
function _docker_compose_push {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help --ignore-push-failures" -- "$cur" ) )
|
||||
@ -397,7 +406,7 @@ _docker_compose_push() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_restart() {
|
||||
function _docker_compose_restart {
|
||||
case "$prev" in
|
||||
--timeout|-t)
|
||||
return
|
||||
@ -415,7 +424,7 @@ _docker_compose_restart() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_rm() {
|
||||
function _docker_compose_rm {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--force -f --help --stop -s -v" -- "$cur" ) )
|
||||
@ -431,7 +440,7 @@ _docker_compose_rm() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_run() {
|
||||
function _docker_compose_run {
|
||||
case "$prev" in
|
||||
-e)
|
||||
COMPREPLY=( $( compgen -e -- "$cur" ) )
|
||||
@ -454,7 +463,7 @@ _docker_compose_run() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_scale() {
|
||||
function _docker_compose_scale {
|
||||
case "$prev" in
|
||||
=)
|
||||
COMPREPLY=("$cur")
|
||||
@ -477,7 +486,7 @@ _docker_compose_scale() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_start() {
|
||||
function _docker_compose_start {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help" -- "$cur" ) )
|
||||
@ -489,7 +498,7 @@ _docker_compose_start() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_stop() {
|
||||
function _docker_compose_stop {
|
||||
case "$prev" in
|
||||
--timeout|-t)
|
||||
return
|
||||
@ -507,7 +516,7 @@ _docker_compose_stop() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_top() {
|
||||
function _docker_compose_top {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help" -- "$cur" ) )
|
||||
@ -519,7 +528,7 @@ _docker_compose_top() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_unpause() {
|
||||
function _docker_compose_unpause {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--help" -- "$cur" ) )
|
||||
@ -531,7 +540,7 @@ _docker_compose_unpause() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_up() {
|
||||
function _docker_compose_up {
|
||||
case "$prev" in
|
||||
=)
|
||||
COMPREPLY=("$cur")
|
||||
@ -562,7 +571,7 @@ _docker_compose_up() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose_version() {
|
||||
function _docker_compose_version {
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--short" -- "$cur" ) )
|
||||
@ -571,7 +580,7 @@ _docker_compose_version() {
|
||||
}
|
||||
|
||||
|
||||
_docker_compose() {
|
||||
function _docker_compose {
|
||||
local previous_extglob_setting=$(shopt -p extglob)
|
||||
shopt -s extglob
|
||||
|
||||
@ -664,7 +673,7 @@ _docker_compose() {
|
||||
done
|
||||
|
||||
local completions_func=_docker_compose_${command//-/_}
|
||||
declare -F $completions_func >/dev/null && $completions_func
|
||||
_omb_util_function_exists "$completions_func" && "$completions_func"
|
||||
|
||||
eval "$previous_extglob_setting"
|
||||
return 0
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user