126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #compdef direnv
 | |
| # ------------------------------------------------------------------------------
 | |
| # Redistribution and use in source and binary forms, with or without
 | |
| # modification, are permitted provided that the following conditions are met:
 | |
| #     * Redistributions of source code must retain the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer.
 | |
| #     * Redistributions in binary form must reproduce the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer in the
 | |
| #       documentation and/or other materials provided with the distribution.
 | |
| #     * Neither the name of the zsh-users nor the
 | |
| #       names of its contributors may be used to endorse or promote products
 | |
| #       derived from this software without specific prior written permission.
 | |
| #
 | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | |
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | |
| # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS OR THE AUTHOR BE LIABLE FOR ANY
 | |
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
| # ------------------------------------------------------------------------------
 | |
| # Description
 | |
| # -----------
 | |
| #
 | |
| #  Completion script for direnv (https://direnv.net/)
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| # Authors
 | |
| # -------
 | |
| #
 | |
| #  * Nitai J. Perez <youcangetselfish@gmail.com>
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| 
 | |
| _commands=(
 | |
|   'allow:Grants direnv permission to load the given .envrc or .env file.'
 | |
|   'permit:Grants direnv permission to load the given .envrc or .env file.'
 | |
|   'grant:Grants direnv permission to load the given .envrc or .env file.'
 | |
|   'block:Revokes the authorization of a given .envrc or .env file.'
 | |
|   'deny:Revokes the authorization of a given .envrc or .env file.'
 | |
|   'revoke:Revokes the authorization of a given .envrc or .env file.'
 | |
|   'edit:Opens PATH_TO_RC or the current .envrc or .env into an $EDITOR and allow the file to be loaded afterwards.'
 | |
|   'exec:Executes a command after loading the first .envrc or .env found in DIR'
 | |
|   'fetchurl:Fetches a given URL into direnv''s CAS'
 | |
|   'help:shows this help'
 | |
|   'hook:Used to setup the shell hook'
 | |
|   'prune:removes old allowed files'
 | |
|   'reload:triggers an env reload'
 | |
|   'status:prints some debug status information'
 | |
|   'stdlib:Displays the stdlib available in the .envrc execution context'
 | |
|   'version:prints the version or checks that direnv is older than VERSION_AT_LEAST.'
 | |
| )
 | |
| 
 | |
| _direnv_commands() {
 | |
|   _describe 'command' _commands
 | |
| }
 | |
| 
 | |
| _direnv() {
 | |
|   local state
 | |
| 
 | |
|   _arguments \
 | |
|     '1: :_direnv_commands' \
 | |
|     '*:: :->command_args'
 | |
| 
 | |
|   case $state in
 | |
|     command_args)
 | |
|       case $words[1] in
 | |
|         allow|permit|grant|block|deny|revoke|edit)
 | |
|           _arguments \
 | |
|             '1:PATH TO RC FILE:_files' \
 | |
|         ;;
 | |
| 
 | |
|         exec)
 | |
|           _arguments \
 | |
|             '1:DIRECTORY:_files -/' \
 | |
|             '2:COMMAND:_command_names'
 | |
| 
 | |
|         ;;
 | |
| 
 | |
|         hook)
 | |
|           _arguments \
 | |
|             '1:SHELL:(bash zsh fish tcsh elvish)'
 | |
|         ;;
 | |
| 
 | |
|         fetchurl)
 | |
|           _arguments \
 | |
|             '1:URL:' \
 | |
|             '2:INTEGRITY HASH:'
 | |
|         ;;
 | |
| 
 | |
| 
 | |
|         prune|reload|status|stdlib)
 | |
|           _arguments
 | |
|         ;;
 | |
| 
 | |
|         version)
 | |
|           _arguments \
 | |
|             '1:VERSION:'
 | |
|         ;;
 | |
| 
 | |
|         help)
 | |
|           _arguments \
 | |
|             '1:SHOW PRIVATE:'
 | |
|         ;;
 | |
| 
 | |
|         *)
 | |
|           _default
 | |
|         ;;
 | |
|       esac
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| _direnv "$@"
 | |
| 
 | |
| # Local Variables:
 | |
| # mode: Shell-Script
 | |
| # sh-indentation: 2
 | |
| # indent-tabs-mode: nil
 | |
| # sh-basic-offset: 2
 | |
| # End:
 | |
| # vim: ft=zsh sw=2 ts=2 et
 |