mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/bash
 | 
						|
# shellcheck disable=SC1090,SC2154
 | 
						|
 | 
						|
# Handle $0 according to the standard:
 | 
						|
# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
 | 
						|
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
 | 
						|
0="${${(M)0:#/*}:-$PWD/$0}"
 | 
						|
 | 
						|
eval '
 | 
						|
  proxy() {
 | 
						|
    # deprecate $DEFAULT_PROXY, use SHELLPROXY_URL instead
 | 
						|
    if [[ -n "$DEFAULT_PROXY" && -z "$SHELLPROXY_URL" ]]; then
 | 
						|
      echo >&2 "proxy: DEFAULT_PROXY is deprecated, use SHELLPROXY_URL instead"
 | 
						|
      SHELLPROXY_URL="$DEFAULT_PROXY"
 | 
						|
      unset DEFAULT_PROXY
 | 
						|
    fi
 | 
						|
 | 
						|
    # deprecate CONFIG_PROXY, use SHELLPROXY_CONFIG instead
 | 
						|
    if [[ -n "$CONFIG_PROXY" && -z "$SHELLPROXY_CONFIG" ]]; then
 | 
						|
      echo >&2 "proxy: CONFIG_PROXY is deprecated, use SHELLPROXY_CONFIG instead"
 | 
						|
      SHELLPROXY_CONFIG="$CONFIG_PROXY"
 | 
						|
      unset CONFIG_PROXY
 | 
						|
    fi
 | 
						|
 | 
						|
    # the proxy.py script is in the same directory as this function
 | 
						|
    local proxy="'"${0:h}"'/proxy.py"
 | 
						|
 | 
						|
    # capture the output of the proxy script and bail out if it fails
 | 
						|
    local output
 | 
						|
    output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_NO_PROXY="$SHELLPROXY_NO_PROXY" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" ||
 | 
						|
      return $?
 | 
						|
 | 
						|
    # evaluate the output generated by the proxy script
 | 
						|
    source <(echo "$output")
 | 
						|
  }
 | 
						|
'
 | 
						|
 | 
						|
_proxy() {
 | 
						|
  local -r commands=('enable' 'disable' 'status')
 | 
						|
  compset -P '*,'
 | 
						|
  compadd -S '' "${commands[@]}"
 | 
						|
}
 | 
						|
 | 
						|
compdef _proxy proxy
 |