github.com/felipejfc/helm@v2.1.2+incompatible/scripts/completions.bash (about) 1 # bash completion for helm -*- shell-script -*- 2 3 __debug() 4 { 5 if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then 6 echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 7 fi 8 } 9 10 # Homebrew on Macs have version 1.3 of bash-completion which doesn't include 11 # _init_completion. This is a very minimal version of that function. 12 __my_init_completion() 13 { 14 COMPREPLY=() 15 _get_comp_words_by_ref "$@" cur prev words cword 16 } 17 18 __index_of_word() 19 { 20 local w word=$1 21 shift 22 index=0 23 for w in "$@"; do 24 [[ $w = "$word" ]] && return 25 index=$((index+1)) 26 done 27 index=-1 28 } 29 30 __contains_word() 31 { 32 local w word=$1; shift 33 for w in "$@"; do 34 [[ $w = "$word" ]] && return 35 done 36 return 1 37 } 38 39 __handle_reply() 40 { 41 __debug "${FUNCNAME[0]}" 42 case $cur in 43 -*) 44 if [[ $(type -t compopt) = "builtin" ]]; then 45 compopt -o nospace 46 fi 47 local allflags 48 if [ ${#must_have_one_flag[@]} -ne 0 ]; then 49 allflags=("${must_have_one_flag[@]}") 50 else 51 allflags=("${flags[*]} ${two_word_flags[*]}") 52 fi 53 COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") ) 54 if [[ $(type -t compopt) = "builtin" ]]; then 55 [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace 56 fi 57 58 # complete after --flag=abc 59 if [[ $cur == *=* ]]; then 60 if [[ $(type -t compopt) = "builtin" ]]; then 61 compopt +o nospace 62 fi 63 64 local index flag 65 flag="${cur%%=*}" 66 __index_of_word "${flag}" "${flags_with_completion[@]}" 67 if [[ ${index} -ge 0 ]]; then 68 COMPREPLY=() 69 PREFIX="" 70 cur="${cur#*=}" 71 ${flags_completion[${index}]} 72 if [ -n "${ZSH_VERSION}" ]; then 73 # zfs completion needs --flag= prefix 74 eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )" 75 fi 76 fi 77 fi 78 return 0; 79 ;; 80 esac 81 82 # check if we are handling a flag with special work handling 83 local index 84 __index_of_word "${prev}" "${flags_with_completion[@]}" 85 if [[ ${index} -ge 0 ]]; then 86 ${flags_completion[${index}]} 87 return 88 fi 89 90 # we are parsing a flag and don't have a special handler, no completion 91 if [[ ${cur} != "${words[cword]}" ]]; then 92 return 93 fi 94 95 local completions 96 completions=("${commands[@]}") 97 if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then 98 completions=("${must_have_one_noun[@]}") 99 fi 100 if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then 101 completions+=("${must_have_one_flag[@]}") 102 fi 103 COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") ) 104 105 if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then 106 COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") ) 107 fi 108 109 if [[ ${#COMPREPLY[@]} -eq 0 ]]; then 110 declare -F __custom_func >/dev/null && __custom_func 111 fi 112 113 __ltrim_colon_completions "$cur" 114 } 115 116 # The arguments should be in the form "ext1|ext2|extn" 117 __handle_filename_extension_flag() 118 { 119 local ext="$1" 120 _filedir "@(${ext})" 121 } 122 123 __handle_subdirs_in_dir_flag() 124 { 125 local dir="$1" 126 pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 127 } 128 129 __handle_flag() 130 { 131 __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" 132 133 # if a command required a flag, and we found it, unset must_have_one_flag() 134 local flagname=${words[c]} 135 local flagvalue 136 # if the word contained an = 137 if [[ ${words[c]} == *"="* ]]; then 138 flagvalue=${flagname#*=} # take in as flagvalue after the = 139 flagname=${flagname%%=*} # strip everything after the = 140 flagname="${flagname}=" # but put the = back 141 fi 142 __debug "${FUNCNAME[0]}: looking for ${flagname}" 143 if __contains_word "${flagname}" "${must_have_one_flag[@]}"; then 144 must_have_one_flag=() 145 fi 146 147 # if you set a flag which only applies to this command, don't show subcommands 148 if __contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then 149 commands=() 150 fi 151 152 # keep flag value with flagname as flaghash 153 if [ -n "${flagvalue}" ] ; then 154 flaghash[${flagname}]=${flagvalue} 155 elif [ -n "${words[ $((c+1)) ]}" ] ; then 156 flaghash[${flagname}]=${words[ $((c+1)) ]} 157 else 158 flaghash[${flagname}]="true" # pad "true" for bool flag 159 fi 160 161 # skip the argument to a two word flag 162 if __contains_word "${words[c]}" "${two_word_flags[@]}"; then 163 c=$((c+1)) 164 # if we are looking for a flags value, don't show commands 165 if [[ $c -eq $cword ]]; then 166 commands=() 167 fi 168 fi 169 170 c=$((c+1)) 171 172 } 173 174 __handle_noun() 175 { 176 __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" 177 178 if __contains_word "${words[c]}" "${must_have_one_noun[@]}"; then 179 must_have_one_noun=() 180 elif __contains_word "${words[c]}" "${noun_aliases[@]}"; then 181 must_have_one_noun=() 182 fi 183 184 nouns+=("${words[c]}") 185 c=$((c+1)) 186 } 187 188 __handle_command() 189 { 190 __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" 191 192 local next_command 193 if [[ -n ${last_command} ]]; then 194 next_command="_${last_command}_${words[c]//:/__}" 195 else 196 if [[ $c -eq 0 ]]; then 197 next_command="_$(basename "${words[c]//:/__}")" 198 else 199 next_command="_${words[c]//:/__}" 200 fi 201 fi 202 c=$((c+1)) 203 __debug "${FUNCNAME[0]}: looking for ${next_command}" 204 declare -F $next_command >/dev/null && $next_command 205 } 206 207 __handle_word() 208 { 209 if [[ $c -ge $cword ]]; then 210 __handle_reply 211 return 212 fi 213 __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" 214 if [[ "${words[c]}" == -* ]]; then 215 __handle_flag 216 elif __contains_word "${words[c]}" "${commands[@]}"; then 217 __handle_command 218 elif [[ $c -eq 0 ]] && __contains_word "$(basename "${words[c]}")" "${commands[@]}"; then 219 __handle_command 220 else 221 __handle_noun 222 fi 223 __handle_word 224 } 225 226 _helm_create() 227 { 228 last_command="helm_create" 229 commands=() 230 231 flags=() 232 two_word_flags=() 233 local_nonpersistent_flags=() 234 flags_with_completion=() 235 flags_completion=() 236 237 flags+=("--debug") 238 flags+=("--home=") 239 flags+=("--host=") 240 flags+=("--kube-context=") 241 242 must_have_one_flag=() 243 must_have_one_noun=() 244 noun_aliases=() 245 } 246 247 _helm_delete() 248 { 249 last_command="helm_delete" 250 commands=() 251 252 flags=() 253 two_word_flags=() 254 local_nonpersistent_flags=() 255 flags_with_completion=() 256 flags_completion=() 257 258 flags+=("--dry-run") 259 local_nonpersistent_flags+=("--dry-run") 260 flags+=("--no-hooks") 261 local_nonpersistent_flags+=("--no-hooks") 262 flags+=("--purge") 263 local_nonpersistent_flags+=("--purge") 264 flags+=("--debug") 265 flags+=("--home=") 266 flags+=("--host=") 267 flags+=("--kube-context=") 268 269 must_have_one_flag=() 270 must_have_one_noun=() 271 noun_aliases=() 272 } 273 274 _helm_dependency_build() 275 { 276 last_command="helm_dependency_build" 277 commands=() 278 279 flags=() 280 two_word_flags=() 281 local_nonpersistent_flags=() 282 flags_with_completion=() 283 flags_completion=() 284 285 flags+=("--keyring=") 286 local_nonpersistent_flags+=("--keyring=") 287 flags+=("--verify") 288 local_nonpersistent_flags+=("--verify") 289 flags+=("--debug") 290 flags+=("--home=") 291 flags+=("--host=") 292 flags+=("--kube-context=") 293 294 must_have_one_flag=() 295 must_have_one_noun=() 296 noun_aliases=() 297 } 298 299 _helm_dependency_list() 300 { 301 last_command="helm_dependency_list" 302 commands=() 303 304 flags=() 305 two_word_flags=() 306 local_nonpersistent_flags=() 307 flags_with_completion=() 308 flags_completion=() 309 310 flags+=("--debug") 311 flags+=("--home=") 312 flags+=("--host=") 313 flags+=("--kube-context=") 314 315 must_have_one_flag=() 316 must_have_one_noun=() 317 noun_aliases=() 318 } 319 320 _helm_dependency_update() 321 { 322 last_command="helm_dependency_update" 323 commands=() 324 325 flags=() 326 two_word_flags=() 327 local_nonpersistent_flags=() 328 flags_with_completion=() 329 flags_completion=() 330 331 flags+=("--keyring=") 332 local_nonpersistent_flags+=("--keyring=") 333 flags+=("--verify") 334 local_nonpersistent_flags+=("--verify") 335 flags+=("--debug") 336 flags+=("--home=") 337 flags+=("--host=") 338 flags+=("--kube-context=") 339 340 must_have_one_flag=() 341 must_have_one_noun=() 342 noun_aliases=() 343 } 344 345 _helm_dependency() 346 { 347 last_command="helm_dependency" 348 commands=() 349 commands+=("build") 350 commands+=("list") 351 commands+=("update") 352 353 flags=() 354 two_word_flags=() 355 local_nonpersistent_flags=() 356 flags_with_completion=() 357 flags_completion=() 358 359 flags+=("--debug") 360 flags+=("--home=") 361 flags+=("--host=") 362 flags+=("--kube-context=") 363 364 must_have_one_flag=() 365 must_have_one_noun=() 366 noun_aliases=() 367 } 368 369 _helm_fetch() 370 { 371 last_command="helm_fetch" 372 commands=() 373 374 flags=() 375 two_word_flags=() 376 local_nonpersistent_flags=() 377 flags_with_completion=() 378 flags_completion=() 379 380 flags+=("--destination=") 381 two_word_flags+=("-d") 382 local_nonpersistent_flags+=("--destination=") 383 flags+=("--keyring=") 384 local_nonpersistent_flags+=("--keyring=") 385 flags+=("--untar") 386 local_nonpersistent_flags+=("--untar") 387 flags+=("--untardir=") 388 local_nonpersistent_flags+=("--untardir=") 389 flags+=("--verify") 390 local_nonpersistent_flags+=("--verify") 391 flags+=("--version=") 392 local_nonpersistent_flags+=("--version=") 393 flags+=("--debug") 394 flags+=("--home=") 395 flags+=("--host=") 396 flags+=("--kube-context=") 397 398 must_have_one_flag=() 399 must_have_one_noun=() 400 noun_aliases=() 401 } 402 403 _helm_get_hooks() 404 { 405 last_command="helm_get_hooks" 406 commands=() 407 408 flags=() 409 two_word_flags=() 410 local_nonpersistent_flags=() 411 flags_with_completion=() 412 flags_completion=() 413 414 flags+=("--revision=") 415 local_nonpersistent_flags+=("--revision=") 416 flags+=("--debug") 417 flags+=("--home=") 418 flags+=("--host=") 419 flags+=("--kube-context=") 420 421 must_have_one_flag=() 422 must_have_one_noun=() 423 noun_aliases=() 424 } 425 426 _helm_get_manifest() 427 { 428 last_command="helm_get_manifest" 429 commands=() 430 431 flags=() 432 two_word_flags=() 433 local_nonpersistent_flags=() 434 flags_with_completion=() 435 flags_completion=() 436 437 flags+=("--revision=") 438 local_nonpersistent_flags+=("--revision=") 439 flags+=("--debug") 440 flags+=("--home=") 441 flags+=("--host=") 442 flags+=("--kube-context=") 443 444 must_have_one_flag=() 445 must_have_one_noun=() 446 noun_aliases=() 447 } 448 449 _helm_get_values() 450 { 451 last_command="helm_get_values" 452 commands=() 453 454 flags=() 455 two_word_flags=() 456 local_nonpersistent_flags=() 457 flags_with_completion=() 458 flags_completion=() 459 460 flags+=("--all") 461 flags+=("-a") 462 local_nonpersistent_flags+=("--all") 463 flags+=("--revision=") 464 local_nonpersistent_flags+=("--revision=") 465 flags+=("--debug") 466 flags+=("--home=") 467 flags+=("--host=") 468 flags+=("--kube-context=") 469 470 must_have_one_flag=() 471 must_have_one_noun=() 472 noun_aliases=() 473 } 474 475 _helm_get() 476 { 477 last_command="helm_get" 478 commands=() 479 commands+=("hooks") 480 commands+=("manifest") 481 commands+=("values") 482 483 flags=() 484 two_word_flags=() 485 local_nonpersistent_flags=() 486 flags_with_completion=() 487 flags_completion=() 488 489 flags+=("--revision=") 490 local_nonpersistent_flags+=("--revision=") 491 flags+=("--debug") 492 flags+=("--home=") 493 flags+=("--host=") 494 flags+=("--kube-context=") 495 496 must_have_one_flag=() 497 must_have_one_noun=() 498 noun_aliases=() 499 } 500 501 _helm_history() 502 { 503 last_command="helm_history" 504 commands=() 505 506 flags=() 507 two_word_flags=() 508 local_nonpersistent_flags=() 509 flags_with_completion=() 510 flags_completion=() 511 512 flags+=("--max=") 513 local_nonpersistent_flags+=("--max=") 514 flags+=("--debug") 515 flags+=("--home=") 516 flags+=("--host=") 517 flags+=("--kube-context=") 518 519 must_have_one_flag=() 520 must_have_one_noun=() 521 noun_aliases=() 522 } 523 524 _helm_home() 525 { 526 last_command="helm_home" 527 commands=() 528 529 flags=() 530 two_word_flags=() 531 local_nonpersistent_flags=() 532 flags_with_completion=() 533 flags_completion=() 534 535 flags+=("--debug") 536 flags+=("--home=") 537 flags+=("--host=") 538 flags+=("--kube-context=") 539 540 must_have_one_flag=() 541 must_have_one_noun=() 542 noun_aliases=() 543 } 544 545 _helm_init() 546 { 547 last_command="helm_init" 548 commands=() 549 550 flags=() 551 two_word_flags=() 552 local_nonpersistent_flags=() 553 flags_with_completion=() 554 flags_completion=() 555 556 flags+=("--canary-image") 557 local_nonpersistent_flags+=("--canary-image") 558 flags+=("--client-only") 559 flags+=("-c") 560 local_nonpersistent_flags+=("--client-only") 561 flags+=("--dry-run") 562 local_nonpersistent_flags+=("--dry-run") 563 flags+=("--tiller-image=") 564 two_word_flags+=("-i") 565 local_nonpersistent_flags+=("--tiller-image=") 566 flags+=("--debug") 567 flags+=("--home=") 568 flags+=("--host=") 569 flags+=("--kube-context=") 570 571 must_have_one_flag=() 572 must_have_one_noun=() 573 noun_aliases=() 574 } 575 576 _helm_inspect_chart() 577 { 578 last_command="helm_inspect_chart" 579 commands=() 580 581 flags=() 582 two_word_flags=() 583 local_nonpersistent_flags=() 584 flags_with_completion=() 585 flags_completion=() 586 587 flags+=("--keyring=") 588 local_nonpersistent_flags+=("--keyring=") 589 flags+=("--verify") 590 local_nonpersistent_flags+=("--verify") 591 flags+=("--version=") 592 local_nonpersistent_flags+=("--version=") 593 flags+=("--debug") 594 flags+=("--home=") 595 flags+=("--host=") 596 flags+=("--kube-context=") 597 598 must_have_one_flag=() 599 must_have_one_noun=() 600 noun_aliases=() 601 } 602 603 _helm_inspect_values() 604 { 605 last_command="helm_inspect_values" 606 commands=() 607 608 flags=() 609 two_word_flags=() 610 local_nonpersistent_flags=() 611 flags_with_completion=() 612 flags_completion=() 613 614 flags+=("--keyring=") 615 local_nonpersistent_flags+=("--keyring=") 616 flags+=("--verify") 617 local_nonpersistent_flags+=("--verify") 618 flags+=("--version=") 619 local_nonpersistent_flags+=("--version=") 620 flags+=("--debug") 621 flags+=("--home=") 622 flags+=("--host=") 623 flags+=("--kube-context=") 624 625 must_have_one_flag=() 626 must_have_one_noun=() 627 noun_aliases=() 628 } 629 630 _helm_inspect() 631 { 632 last_command="helm_inspect" 633 commands=() 634 commands+=("chart") 635 commands+=("values") 636 637 flags=() 638 two_word_flags=() 639 local_nonpersistent_flags=() 640 flags_with_completion=() 641 flags_completion=() 642 643 flags+=("--keyring=") 644 local_nonpersistent_flags+=("--keyring=") 645 flags+=("--verify") 646 local_nonpersistent_flags+=("--verify") 647 flags+=("--version=") 648 local_nonpersistent_flags+=("--version=") 649 flags+=("--debug") 650 flags+=("--home=") 651 flags+=("--host=") 652 flags+=("--kube-context=") 653 654 must_have_one_flag=() 655 must_have_one_noun=() 656 noun_aliases=() 657 } 658 659 _helm_install() 660 { 661 last_command="helm_install" 662 commands=() 663 664 flags=() 665 two_word_flags=() 666 local_nonpersistent_flags=() 667 flags_with_completion=() 668 flags_completion=() 669 670 flags+=("--dry-run") 671 local_nonpersistent_flags+=("--dry-run") 672 flags+=("--keyring=") 673 local_nonpersistent_flags+=("--keyring=") 674 flags+=("--name=") 675 two_word_flags+=("-n") 676 local_nonpersistent_flags+=("--name=") 677 flags+=("--name-template=") 678 local_nonpersistent_flags+=("--name-template=") 679 flags+=("--namespace=") 680 local_nonpersistent_flags+=("--namespace=") 681 flags+=("--no-hooks") 682 local_nonpersistent_flags+=("--no-hooks") 683 flags+=("--replace") 684 local_nonpersistent_flags+=("--replace") 685 flags+=("--set=") 686 local_nonpersistent_flags+=("--set=") 687 flags+=("--values=") 688 two_word_flags+=("-f") 689 local_nonpersistent_flags+=("--values=") 690 flags+=("--verify") 691 local_nonpersistent_flags+=("--verify") 692 flags+=("--version=") 693 local_nonpersistent_flags+=("--version=") 694 flags+=("--debug") 695 flags+=("--home=") 696 flags+=("--host=") 697 flags+=("--kube-context=") 698 699 must_have_one_flag=() 700 must_have_one_noun=() 701 noun_aliases=() 702 } 703 704 _helm_lint() 705 { 706 last_command="helm_lint" 707 commands=() 708 709 flags=() 710 two_word_flags=() 711 local_nonpersistent_flags=() 712 flags_with_completion=() 713 flags_completion=() 714 715 flags+=("--strict") 716 local_nonpersistent_flags+=("--strict") 717 flags+=("--debug") 718 flags+=("--home=") 719 flags+=("--host=") 720 flags+=("--kube-context=") 721 722 must_have_one_flag=() 723 must_have_one_noun=() 724 noun_aliases=() 725 } 726 727 _helm_list() 728 { 729 last_command="helm_list" 730 commands=() 731 732 flags=() 733 two_word_flags=() 734 local_nonpersistent_flags=() 735 flags_with_completion=() 736 flags_completion=() 737 738 flags+=("--all") 739 local_nonpersistent_flags+=("--all") 740 flags+=("--date") 741 flags+=("-d") 742 local_nonpersistent_flags+=("--date") 743 flags+=("--deleted") 744 local_nonpersistent_flags+=("--deleted") 745 flags+=("--deployed") 746 local_nonpersistent_flags+=("--deployed") 747 flags+=("--failed") 748 local_nonpersistent_flags+=("--failed") 749 flags+=("--max=") 750 two_word_flags+=("-m") 751 local_nonpersistent_flags+=("--max=") 752 flags+=("--offset=") 753 two_word_flags+=("-o") 754 local_nonpersistent_flags+=("--offset=") 755 flags+=("--reverse") 756 flags+=("-r") 757 local_nonpersistent_flags+=("--reverse") 758 flags+=("--short") 759 flags+=("-q") 760 local_nonpersistent_flags+=("--short") 761 flags+=("--debug") 762 flags+=("--home=") 763 flags+=("--host=") 764 flags+=("--kube-context=") 765 766 must_have_one_flag=() 767 must_have_one_noun=() 768 noun_aliases=() 769 } 770 771 _helm_package() 772 { 773 last_command="helm_package" 774 commands=() 775 776 flags=() 777 two_word_flags=() 778 local_nonpersistent_flags=() 779 flags_with_completion=() 780 flags_completion=() 781 782 flags+=("--key=") 783 local_nonpersistent_flags+=("--key=") 784 flags+=("--keyring=") 785 local_nonpersistent_flags+=("--keyring=") 786 flags+=("--save") 787 local_nonpersistent_flags+=("--save") 788 flags+=("--sign") 789 local_nonpersistent_flags+=("--sign") 790 flags+=("--debug") 791 flags+=("--home=") 792 flags+=("--host=") 793 flags+=("--kube-context=") 794 795 must_have_one_flag=() 796 must_have_one_noun=() 797 noun_aliases=() 798 } 799 800 _helm_repo_add() 801 { 802 last_command="helm_repo_add" 803 commands=() 804 805 flags=() 806 two_word_flags=() 807 local_nonpersistent_flags=() 808 flags_with_completion=() 809 flags_completion=() 810 811 flags+=("--no-update") 812 local_nonpersistent_flags+=("--no-update") 813 flags+=("--debug") 814 flags+=("--home=") 815 flags+=("--host=") 816 flags+=("--kube-context=") 817 818 must_have_one_flag=() 819 must_have_one_noun=() 820 noun_aliases=() 821 } 822 823 _helm_repo_index() 824 { 825 last_command="helm_repo_index" 826 commands=() 827 828 flags=() 829 two_word_flags=() 830 local_nonpersistent_flags=() 831 flags_with_completion=() 832 flags_completion=() 833 834 flags+=("--merge=") 835 local_nonpersistent_flags+=("--merge=") 836 flags+=("--url=") 837 local_nonpersistent_flags+=("--url=") 838 flags+=("--debug") 839 flags+=("--home=") 840 flags+=("--host=") 841 flags+=("--kube-context=") 842 843 must_have_one_flag=() 844 must_have_one_noun=() 845 noun_aliases=() 846 } 847 848 _helm_repo_list() 849 { 850 last_command="helm_repo_list" 851 commands=() 852 853 flags=() 854 two_word_flags=() 855 local_nonpersistent_flags=() 856 flags_with_completion=() 857 flags_completion=() 858 859 flags+=("--debug") 860 flags+=("--home=") 861 flags+=("--host=") 862 flags+=("--kube-context=") 863 864 must_have_one_flag=() 865 must_have_one_noun=() 866 noun_aliases=() 867 } 868 869 _helm_repo_remove() 870 { 871 last_command="helm_repo_remove" 872 commands=() 873 874 flags=() 875 two_word_flags=() 876 local_nonpersistent_flags=() 877 flags_with_completion=() 878 flags_completion=() 879 880 flags+=("--debug") 881 flags+=("--home=") 882 flags+=("--host=") 883 flags+=("--kube-context=") 884 885 must_have_one_flag=() 886 must_have_one_noun=() 887 noun_aliases=() 888 } 889 890 _helm_repo_update() 891 { 892 last_command="helm_repo_update" 893 commands=() 894 895 flags=() 896 two_word_flags=() 897 local_nonpersistent_flags=() 898 flags_with_completion=() 899 flags_completion=() 900 901 flags+=("--debug") 902 flags+=("--home=") 903 flags+=("--host=") 904 flags+=("--kube-context=") 905 906 must_have_one_flag=() 907 must_have_one_noun=() 908 noun_aliases=() 909 } 910 911 _helm_repo() 912 { 913 last_command="helm_repo" 914 commands=() 915 commands+=("add") 916 commands+=("index") 917 commands+=("list") 918 commands+=("remove") 919 commands+=("update") 920 921 flags=() 922 two_word_flags=() 923 local_nonpersistent_flags=() 924 flags_with_completion=() 925 flags_completion=() 926 927 flags+=("--debug") 928 flags+=("--home=") 929 flags+=("--host=") 930 flags+=("--kube-context=") 931 932 must_have_one_flag=() 933 must_have_one_noun=() 934 noun_aliases=() 935 } 936 937 _helm_rollback() 938 { 939 last_command="helm_rollback" 940 commands=() 941 942 flags=() 943 two_word_flags=() 944 local_nonpersistent_flags=() 945 flags_with_completion=() 946 flags_completion=() 947 948 flags+=("--dry-run") 949 local_nonpersistent_flags+=("--dry-run") 950 flags+=("--no-hooks") 951 local_nonpersistent_flags+=("--no-hooks") 952 flags+=("--debug") 953 flags+=("--home=") 954 flags+=("--host=") 955 flags+=("--kube-context=") 956 957 must_have_one_flag=() 958 must_have_one_noun=() 959 noun_aliases=() 960 } 961 962 _helm_search() 963 { 964 last_command="helm_search" 965 commands=() 966 967 flags=() 968 two_word_flags=() 969 local_nonpersistent_flags=() 970 flags_with_completion=() 971 flags_completion=() 972 973 flags+=("--regexp") 974 flags+=("-r") 975 local_nonpersistent_flags+=("--regexp") 976 flags+=("--versions") 977 flags+=("-l") 978 local_nonpersistent_flags+=("--versions") 979 flags+=("--debug") 980 flags+=("--home=") 981 flags+=("--host=") 982 flags+=("--kube-context=") 983 984 must_have_one_flag=() 985 must_have_one_noun=() 986 noun_aliases=() 987 } 988 989 _helm_serve() 990 { 991 last_command="helm_serve" 992 commands=() 993 994 flags=() 995 two_word_flags=() 996 local_nonpersistent_flags=() 997 flags_with_completion=() 998 flags_completion=() 999 1000 flags+=("--address=") 1001 local_nonpersistent_flags+=("--address=") 1002 flags+=("--repo-path=") 1003 local_nonpersistent_flags+=("--repo-path=") 1004 flags+=("--debug") 1005 flags+=("--home=") 1006 flags+=("--host=") 1007 flags+=("--kube-context=") 1008 1009 must_have_one_flag=() 1010 must_have_one_noun=() 1011 noun_aliases=() 1012 } 1013 1014 _helm_status() 1015 { 1016 last_command="helm_status" 1017 commands=() 1018 1019 flags=() 1020 two_word_flags=() 1021 local_nonpersistent_flags=() 1022 flags_with_completion=() 1023 flags_completion=() 1024 1025 flags+=("--revision=") 1026 flags+=("--debug") 1027 flags+=("--home=") 1028 flags+=("--host=") 1029 flags+=("--kube-context=") 1030 1031 must_have_one_flag=() 1032 must_have_one_noun=() 1033 noun_aliases=() 1034 } 1035 1036 _helm_upgrade() 1037 { 1038 last_command="helm_upgrade" 1039 commands=() 1040 1041 flags=() 1042 two_word_flags=() 1043 local_nonpersistent_flags=() 1044 flags_with_completion=() 1045 flags_completion=() 1046 1047 flags+=("--disable-hooks") 1048 local_nonpersistent_flags+=("--disable-hooks") 1049 flags+=("--dry-run") 1050 local_nonpersistent_flags+=("--dry-run") 1051 flags+=("--install") 1052 flags+=("-i") 1053 local_nonpersistent_flags+=("--install") 1054 flags+=("--keyring=") 1055 local_nonpersistent_flags+=("--keyring=") 1056 flags+=("--namespace=") 1057 local_nonpersistent_flags+=("--namespace=") 1058 flags+=("--set=") 1059 local_nonpersistent_flags+=("--set=") 1060 flags+=("--values=") 1061 two_word_flags+=("-f") 1062 local_nonpersistent_flags+=("--values=") 1063 flags+=("--verify") 1064 local_nonpersistent_flags+=("--verify") 1065 flags+=("--version=") 1066 local_nonpersistent_flags+=("--version=") 1067 flags+=("--debug") 1068 flags+=("--home=") 1069 flags+=("--host=") 1070 flags+=("--kube-context=") 1071 1072 must_have_one_flag=() 1073 must_have_one_noun=() 1074 noun_aliases=() 1075 } 1076 1077 _helm_verify() 1078 { 1079 last_command="helm_verify" 1080 commands=() 1081 1082 flags=() 1083 two_word_flags=() 1084 local_nonpersistent_flags=() 1085 flags_with_completion=() 1086 flags_completion=() 1087 1088 flags+=("--keyring=") 1089 local_nonpersistent_flags+=("--keyring=") 1090 flags+=("--debug") 1091 flags+=("--home=") 1092 flags+=("--host=") 1093 flags+=("--kube-context=") 1094 1095 must_have_one_flag=() 1096 must_have_one_noun=() 1097 noun_aliases=() 1098 } 1099 1100 _helm_version() 1101 { 1102 last_command="helm_version" 1103 commands=() 1104 1105 flags=() 1106 two_word_flags=() 1107 local_nonpersistent_flags=() 1108 flags_with_completion=() 1109 flags_completion=() 1110 1111 flags+=("--client") 1112 flags+=("-c") 1113 local_nonpersistent_flags+=("--client") 1114 flags+=("--server") 1115 flags+=("-s") 1116 local_nonpersistent_flags+=("--server") 1117 flags+=("--debug") 1118 flags+=("--home=") 1119 flags+=("--host=") 1120 flags+=("--kube-context=") 1121 1122 must_have_one_flag=() 1123 must_have_one_noun=() 1124 noun_aliases=() 1125 } 1126 1127 _helm() 1128 { 1129 last_command="helm" 1130 commands=() 1131 commands+=("create") 1132 commands+=("delete") 1133 commands+=("dependency") 1134 commands+=("fetch") 1135 commands+=("get") 1136 commands+=("history") 1137 commands+=("home") 1138 commands+=("init") 1139 commands+=("inspect") 1140 commands+=("install") 1141 commands+=("lint") 1142 commands+=("list") 1143 commands+=("package") 1144 commands+=("repo") 1145 commands+=("rollback") 1146 commands+=("search") 1147 commands+=("serve") 1148 commands+=("status") 1149 commands+=("upgrade") 1150 commands+=("verify") 1151 commands+=("version") 1152 1153 flags=() 1154 two_word_flags=() 1155 local_nonpersistent_flags=() 1156 flags_with_completion=() 1157 flags_completion=() 1158 1159 flags+=("--debug") 1160 flags+=("--home=") 1161 flags+=("--host=") 1162 flags+=("--kube-context=") 1163 1164 must_have_one_flag=() 1165 must_have_one_noun=() 1166 noun_aliases=() 1167 } 1168 1169 __start_helm() 1170 { 1171 local cur prev words cword 1172 declare -A flaghash 2>/dev/null || : 1173 if declare -F _init_completion >/dev/null 2>&1; then 1174 _init_completion -s || return 1175 else 1176 __my_init_completion -n "=" || return 1177 fi 1178 1179 local c=0 1180 local flags=() 1181 local two_word_flags=() 1182 local local_nonpersistent_flags=() 1183 local flags_with_completion=() 1184 local flags_completion=() 1185 local commands=("helm") 1186 local must_have_one_flag=() 1187 local must_have_one_noun=() 1188 local last_command 1189 local nouns=() 1190 1191 __handle_word 1192 } 1193 1194 if [[ $(type -t compopt) = "builtin" ]]; then 1195 complete -o default -F __start_helm helm 1196 else 1197 complete -o default -o nospace -F __start_helm helm 1198 fi 1199 1200 # ex: ts=4 sw=4 et filetype=sh