37 lines
		
	
	
		
			882 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			882 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable file
		
	
	
	
	
| #compdef hey
 | |
| 
 | |
| _hey_dispatch () {
 | |
|     local cmd="$@"
 | |
|     local offset=$#
 | |
|     CURRENT=$((CURRENT-$offset))
 | |
|     words=($cmd "${words[$((2 + offset)),-1]}")
 | |
|     _$cmd
 | |
| }
 | |
| 
 | |
| _hey_command_list () {
 | |
|     hey | sed '1,/Available commands:/d' | awk '{ print $1 }'
 | |
| }
 | |
| 
 | |
| _hey () {
 | |
|     local -a commands
 | |
|     IFS=$'\n' commands=($(_hey_command_list))
 | |
| 
 | |
|     if (( CURRENT == 2 )); then
 | |
|         _describe -t commands "hey commands" commands
 | |
|         return
 | |
|     fi
 | |
|     integer ret=1
 | |
|     case ${words[2]} in
 | |
|         ch|channel) _hey_dispatch nix-channel ;;
 | |
|         b|build)    _hey_dispatch nix-build ;;
 | |
|         ch|check)   _hey_dispatch nix flake check ;;
 | |
|         sh|show)    _hey_dispatch nix flake show ;;
 | |
|         s|search)   _hey_dispatch nix search nixpkgs ;;
 | |
|         -*)         _hey_dispatch nix-env ;;
 | |
|         *)          _message "Command not found: ${words[2]}" ;;
 | |
|     esac
 | |
|     return ret
 | |
| }
 | |
| 
 | |
| _hey
 |