mirror of
				https://github.com/ohmybash/oh-my-bash.git
				synced 2024-05-11 05:55:37 +00:00 
			
		
		
		
	completions/{cap,homesick,rake,sdkman,ssh}: Fix coding styles
This commit is contained in:
		@@ -4,11 +4,10 @@
 | 
			
		||||
export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/}
 | 
			
		||||
 | 
			
		||||
function _omb_completion_cap {
 | 
			
		||||
  if [ -f Capfile ]; then
 | 
			
		||||
    recent=`ls -t .cap_tasks~ Capfile **/*.cap 2> /dev/null | head -n 1`
 | 
			
		||||
  if [[ -f Capfile ]]; then
 | 
			
		||||
    local recent=$(ls -t .cap_tasks~ Capfile **/*.cap 2> /dev/null | head -n 1)
 | 
			
		||||
    if [[ $recent != '.cap_tasks~' ]]; then
 | 
			
		||||
      cap --version | grep 'Capistrano v2.' > /dev/null
 | 
			
		||||
      if [ $? -eq 0 ]; then
 | 
			
		||||
      if cap --version | grep 'Capistrano v2.' > /dev/null; then
 | 
			
		||||
        # Capistrano 2.x
 | 
			
		||||
        cap --tool --verbose --tasks | cut -d " " -f 2 > .cap_tasks~
 | 
			
		||||
      else
 | 
			
		||||
@@ -16,7 +15,7 @@ function _omb_completion_cap {
 | 
			
		||||
        cap --all --tasks | cut -d " " -f 2 > .cap_tasks~
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    COMPREPLY=($(compgen -W "`cat .cap_tasks~`" -- ${COMP_WORDS[COMP_CWORD]}))
 | 
			
		||||
    COMPREPLY=($(compgen -W '$(< .cap_tasks)' -- "${COMP_WORDS[COMP_CWORD]}"))
 | 
			
		||||
    return 0
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,54 +3,54 @@
 | 
			
		||||
#
 | 
			
		||||
# The homebrew bash completion script was used as inspiration.
 | 
			
		||||
# Originally from https://github.com/liborw/homesick-completion
 | 
			
		||||
# https://github.com/liborw/homesick-completion/blob/904d121d1b8f81629f473915a10c9144fdd416dc/homesick_bash_completion.sh
 | 
			
		||||
 | 
			
		||||
_omb_completion_homesick()
 | 
			
		||||
{
 | 
			
		||||
  local cur="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
  local cur=${COMP_WORDS[COMP_CWORD]}
 | 
			
		||||
  local options="--skip --force --pretend --quiet"
 | 
			
		||||
  local actions="cd clone commit destroy diff generate help list open pull push rc show_path status symlink track unlink version"
 | 
			
		||||
  local repos=$(\ls ~/.homesick/repos)
 | 
			
		||||
 | 
			
		||||
  # Subcommand list
 | 
			
		||||
  [[ ${COMP_CWORD} -eq 1 ]] && {
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${options} ${actions}" -- ${cur}) )
 | 
			
		||||
  if ((COMP_CWORD == 1)); then
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${options} ${actions}" -- "$cur") )
 | 
			
		||||
    return
 | 
			
		||||
  }
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Find the first non-switch word
 | 
			
		||||
  local prev_index=1
 | 
			
		||||
  local prev="${COMP_WORDS[prev_index]}"
 | 
			
		||||
  local prev=${COMP_WORDS[prev_index]}
 | 
			
		||||
  while [[ $prev == -* ]]; do
 | 
			
		||||
    prev_index=$((++prev_index))
 | 
			
		||||
    prev="${COMP_WORDS[prev_index]}"
 | 
			
		||||
    ((++prev_index))
 | 
			
		||||
    prev=${COMP_WORDS[prev_index]}
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  # Find the number of non-"--" commands
 | 
			
		||||
  local num=0
 | 
			
		||||
  for word in ${COMP_WORDS[@]}
 | 
			
		||||
  do
 | 
			
		||||
  for word in "${COMP_WORDS[@]}"; do
 | 
			
		||||
    if [[ $word != -* ]]; then
 | 
			
		||||
      num=$((++num))
 | 
			
		||||
      ((++num))
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  case "$prev" in
 | 
			
		||||
  case $prev in
 | 
			
		||||
  # Commands that take a castle
 | 
			
		||||
  cd|commit|destroy|diff|open|pull|push|rc|show_path|status|symlink|unlink)
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${repos}" -- ${cur}) )
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${repos}" -- "$cur") )
 | 
			
		||||
    return
 | 
			
		||||
    ;;
 | 
			
		||||
  # Commands that take command
 | 
			
		||||
  help)
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${actions}" -- ${cur}) )
 | 
			
		||||
    COMPREPLY=( $(compgen -W "${actions}" -- "$cur") )
 | 
			
		||||
    return
 | 
			
		||||
    ;;
 | 
			
		||||
  # Track command take file and repo
 | 
			
		||||
  track)
 | 
			
		||||
    if [[ "$num" -eq 2 ]]; then
 | 
			
		||||
      COMPREPLY=( $(compgen -X -f ${cur}) )
 | 
			
		||||
    elif [[ "$num" -ge 3 ]]; then
 | 
			
		||||
      COMPREPLY=( $(compgen -W "${repos}" -- ${cur}) )
 | 
			
		||||
    if ((num == 2)); then
 | 
			
		||||
      COMPREPLY=( $(compgen -X -f "$cur") )
 | 
			
		||||
    elif ((num >= 3)); then
 | 
			
		||||
      COMPREPLY=( $(compgen -W "${repos}" -- "$cur") )
 | 
			
		||||
    fi
 | 
			
		||||
    return
 | 
			
		||||
    ;;
 | 
			
		||||
@@ -58,4 +58,3 @@ _omb_completion_homesick()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
complete -o bashdefault -o default -F _omb_completion_homesick homesick
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,12 +4,12 @@
 | 
			
		||||
export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/}
 | 
			
		||||
 | 
			
		||||
function _omb_completion_rake {
 | 
			
		||||
  if [ -f Rakefile ]; then
 | 
			
		||||
    recent=`ls -t .rake_tasks~ Rakefile **/*.rake 2> /dev/null | head -n 1`
 | 
			
		||||
  if [[ -f Rakefile ]]; then
 | 
			
		||||
    local recent=$(ls -t .rake_tasks~ Rakefile **/*.rake 2> /dev/null | head -n 1)
 | 
			
		||||
    if [[ $recent != '.rake_tasks~' ]]; then
 | 
			
		||||
      rake --silent --tasks --all | cut -d " " -f 2 > .rake_tasks~
 | 
			
		||||
    fi
 | 
			
		||||
    COMPREPLY=($(compgen -W "`cat .rake_tasks~`" -- ${COMP_WORDS[COMP_CWORD]}))
 | 
			
		||||
    COMPREPLY=($(compgen -W '$(< .rake_tasks~)' -- "${COMP_WORDS[COMP_CWORD]}"))
 | 
			
		||||
    return 0
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,13 +9,12 @@ if ! declare -F __sdkman_build_version_csv &>/dev/null; then
 | 
			
		||||
  #   sdkman/sdkman-cli".
 | 
			
		||||
  #   https://github.com/sdkman/sdkman-cli/blob/19e5c081297d6a8d1ce8a8b54631bb3f8e8e861b/src/main/bash/sdkman-list.sh#L51
 | 
			
		||||
  function __sdkman_build_version_csv() {
 | 
			
		||||
    local candidate versions_csv
 | 
			
		||||
    candidate="$1"
 | 
			
		||||
    versions_csv=""
 | 
			
		||||
    if [[ -d "${SDKMAN_CANDIDATES_DIR}/${candidate}" ]]; then
 | 
			
		||||
    local candidate=$1
 | 
			
		||||
    local versions_csv=""
 | 
			
		||||
    if [[ -d ${SDKMAN_CANDIDATES_DIR}/${candidate} ]]; then
 | 
			
		||||
      for version in $(find "${SDKMAN_CANDIDATES_DIR}/${candidate}" -maxdepth 1 -mindepth 1 \( -type l -o -type d \) -exec basename '{}' \; | sort -r); do
 | 
			
		||||
        if [[ "$version" != 'current' ]]; then
 | 
			
		||||
          versions_csv="${version},${versions_csv}"
 | 
			
		||||
        if [[ $version != 'current' ]]; then
 | 
			
		||||
          versions_csv=${version},${versions_csv}
 | 
			
		||||
        fi
 | 
			
		||||
      done
 | 
			
		||||
      versions_csv=${versions_csv%?}
 | 
			
		||||
@@ -26,36 +25,36 @@ fi
 | 
			
		||||
 | 
			
		||||
_omb_completion_sdkman()
 | 
			
		||||
{
 | 
			
		||||
  local CANDIDATES
 | 
			
		||||
  local CANDIDATE_VERSIONS
 | 
			
		||||
 | 
			
		||||
  local cur=${COMP_WORDS[COMP_CWORD]}
 | 
			
		||||
  COMPREPLY=()
 | 
			
		||||
 | 
			
		||||
  if [ $COMP_CWORD -eq 1 ]; then
 | 
			
		||||
    COMPREPLY=( $(compgen -W "install uninstall rm list ls use current outdated version default selfupdate broadcast offline help flush" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
  elif [ $COMP_CWORD -eq 2 ]; then
 | 
			
		||||
    case "${COMP_WORDS[COMP_CWORD-1]}" in
 | 
			
		||||
  if ((COMP_CWORD == 1)); then
 | 
			
		||||
    COMPREPLY=( $(compgen -W "install uninstall rm list ls use current outdated version default selfupdate broadcast offline help flush" -- "$cur") )
 | 
			
		||||
  elif ((COMP_CWORD == 2)); then
 | 
			
		||||
    case ${COMP_WORDS[COMP_CWORD-1]} in
 | 
			
		||||
      "install" | "uninstall" | "rm" | "list" | "ls" | "use" | "current" | "outdated" )
 | 
			
		||||
        CANDIDATES=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ')
 | 
			
		||||
        COMPREPLY=( $(compgen -W "$CANDIDATES" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
        local candidates
 | 
			
		||||
        candidates=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ')
 | 
			
		||||
        COMPREPLY=( $(compgen -W "$candidates" -- "$cur") )
 | 
			
		||||
        ;;
 | 
			
		||||
      "offline" )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "enable disable" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "enable disable" -- "$cur") )
 | 
			
		||||
        ;;
 | 
			
		||||
      "selfupdate" )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "force" -P "[" -S "]" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "force" -P "[" -S "]" -- "$cur") )
 | 
			
		||||
        ;;
 | 
			
		||||
      "flush" )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "candidates broadcast archives temp" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
        COMPREPLY=( $(compgen -W "candidates broadcast archives temp" -- "$cur") )
 | 
			
		||||
        ;;
 | 
			
		||||
      *)
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
  elif [ $COMP_CWORD -eq 3 ]; then
 | 
			
		||||
    case "${COMP_WORDS[COMP_CWORD-2]}" in
 | 
			
		||||
  elif ((COMP_CWORD == 3)); then
 | 
			
		||||
    case ${COMP_WORDS[COMP_CWORD-2]} in
 | 
			
		||||
      "install" | "uninstall" | "rm" | "use" | "default" )
 | 
			
		||||
        _omb_completion_sdkman__candidate_versions ${COMP_WORDS[COMP_CWORD-1]}
 | 
			
		||||
        COMPREPLY=( $(compgen -W "$CANDIDATE_VERSIONS" -- ${COMP_WORDS[COMP_CWORD]}) )
 | 
			
		||||
        local candidate_versions
 | 
			
		||||
        _omb_completion_sdkman__candidate_versions "${COMP_WORDS[COMP_CWORD-1]}"
 | 
			
		||||
        COMPREPLY=( $(compgen -W "$candidate_versions" -- "$cur") )
 | 
			
		||||
        ;;
 | 
			
		||||
      *)
 | 
			
		||||
        ;;
 | 
			
		||||
@@ -66,21 +65,19 @@ _omb_completion_sdkman()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _omb_completion_sdkman__candidate_versions {
 | 
			
		||||
 | 
			
		||||
  CANDIDATE_LOCAL_VERSIONS=$(_omb_completion_sdkman__cleanup_local_versions $1)
 | 
			
		||||
  if [ "$SDKMAN_OFFLINE_MODE" = "true" ]; then
 | 
			
		||||
    CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS
 | 
			
		||||
  local local_versions=$(_omb_completion_sdkman__cleanup_local_versions "$1")
 | 
			
		||||
  if [[ $SDKMAN_OFFLINE_MODE = "true" ]]; then
 | 
			
		||||
    candidate_versions=$local_versions
 | 
			
		||||
  else
 | 
			
		||||
    CANDIDATE_ONLINE_VERSIONS="$(curl -s "${SDKMAN_SERVICE}/candidates/$1" | tr ',' ' ')"
 | 
			
		||||
    CANDIDATE_VERSIONS="$(echo $CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS |sort | uniq ) "
 | 
			
		||||
    local online_versions="$(curl -s "${SDKMAN_SERVICE}/candidates/$1" | tr ',' ' ')"
 | 
			
		||||
    candidate_versions="$(echo $online_versions $local_versions |sort | uniq ) "
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _omb_completion_sdkman__cleanup_local_versions {
 | 
			
		||||
  __sdkman_build_version_csv $1
 | 
			
		||||
  echo $CSV | tr ',' ' '
 | 
			
		||||
 | 
			
		||||
  __sdkman_build_version_csv "$1"
 | 
			
		||||
  tr ',' ' ' <<< "$CSV"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
complete -F _omb_completion_sdkman sdk
 | 
			
		||||
 
 | 
			
		||||
@@ -4,29 +4,28 @@
 | 
			
		||||
export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/}
 | 
			
		||||
 | 
			
		||||
function _omb_completion_ssh {
 | 
			
		||||
  local CURRENT_PROMPT="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
  if [[ ${CURRENT_PROMPT} == *@*  ]] ; then
 | 
			
		||||
    local OPTIONS="-P ${CURRENT_PROMPT/@*/}@ -- ${CURRENT_PROMPT/*@/}"
 | 
			
		||||
  local cur=${COMP_WORDS[COMP_CWORD]}
 | 
			
		||||
  if [[ $cur == *@*  ]] ; then
 | 
			
		||||
    local -a options=(-P "${cur%%@*}@" -- "${cur#*@}")
 | 
			
		||||
  else
 | 
			
		||||
    local OPTIONS=" -- ${CURRENT_PROMPT}"
 | 
			
		||||
    local -a options=(-- "$cur")
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # parse all defined hosts from .ssh/config
 | 
			
		||||
  if [ -r "$HOME/.ssh/config" ]; then
 | 
			
		||||
    COMPREPLY=($(compgen -W "$(grep ^Host "$HOME/.ssh/config" | awk '{for (i=2; i<=NF; i++) print $i}' )" ${OPTIONS}) )
 | 
			
		||||
  if [[ -r $HOME/.ssh/config ]]; then
 | 
			
		||||
    COMPREPLY=($(compgen -W "$(grep ^Host "$HOME/.ssh/config" | awk '{for (i=2; i<=NF; i++) print $i}' )" "${options[@]}"))
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # parse all hosts found in .ssh/known_hosts
 | 
			
		||||
  if [ -r "$HOME/.ssh/known_hosts" ]; then
 | 
			
		||||
  if [[ -r $HOME/.ssh/known_hosts ]]; then
 | 
			
		||||
    if grep -v -q -e '^ ssh-rsa' "$HOME/.ssh/known_hosts" ; then
 | 
			
		||||
      COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$( awk '{print $1}' "$HOME/.ssh/known_hosts" | grep -v ^\| | cut -d, -f 1 | sed -e 's/\[//g' | sed -e 's/\]//g' | cut -d: -f1 | grep -v ssh-rsa)" ${OPTIONS}) )
 | 
			
		||||
      COMPREPLY+=($(compgen -W "$( awk '{print $1}' "$HOME/.ssh/known_hosts" | grep -v ^\| | cut -d, -f 1 | sed -e 's/\[//g' | sed -e 's/\]//g' | cut -d: -f1 | grep -v ssh-rsa)" "${options[@]}"))
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # parse hosts defined in /etc/hosts
 | 
			
		||||
  if [ -r /etc/hosts ]; then
 | 
			
		||||
    COMPREPLY=( ${COMPREPLY[@]} $(compgen -W "$( grep -v '^[[:space:]]*$' /etc/hosts | grep -v '^#' | awk '{for (i=2; i<=NF; i++) print $i}' )" ${OPTIONS}) )
 | 
			
		||||
  if [[ -r /etc/hosts ]]; then
 | 
			
		||||
    COMPREPLY+=($(compgen -W "$( grep -v '^[[:space:]]*$' /etc/hosts | grep -v '^#' | awk '{for (i=2; i<=NF; i++) print $i}' )" "${options[@]}"))
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  return 0
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user