34 lines
		
	
	
		
			881 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			881 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								_nixos-container() {
							 | 
						||
| 
								 | 
							
								    local cur prev opts
							 | 
						||
| 
								 | 
							
								    COMPREPLY=()
							 | 
						||
| 
								 | 
							
								    cur="${COMP_WORDS[COMP_CWORD]}"
							 | 
						||
| 
								 | 
							
								    prev="${COMP_WORDS[COMP_CWORD-1]}"
							 | 
						||
| 
								 | 
							
								    opts="list create destroy start stop status update login root-login run show-ip show-host-key"
							 | 
						||
| 
								 | 
							
								    startstop_opts=$(nixos-container list)
							 | 
						||
| 
								 | 
							
								    update_opts="--config"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [[ "$prev" == "nixos-container" ]]
							 | 
						||
| 
								 | 
							
								    then
							 | 
						||
| 
								 | 
							
								        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
							 | 
						||
| 
								 | 
							
								        return 0
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [[ $(echo "$opts" | grep "$prev") ]]
							 | 
						||
| 
								 | 
							
								    then
							 | 
						||
| 
								 | 
							
								        if [[ "$prev" == "start" || "$prev" == "stop" ]]
							 | 
						||
| 
								 | 
							
								        then
							 | 
						||
| 
								 | 
							
								            COMPREPLY=( $(compgen -W "${startstop_opts}" -- ${cur}) )
							 | 
						||
| 
								 | 
							
								            return 0
							 | 
						||
| 
								 | 
							
								        elif [[ "$prev" == "update" ]]
							 | 
						||
| 
								 | 
							
								        then
							 | 
						||
| 
								 | 
							
								            COMPREPLY=( $(compgen -W "${update_opts}" -- ${cur}) )
							 | 
						||
| 
								 | 
							
								            return 0
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								complete -F _nixos-container nixos-container
							 | 
						||
| 
								 | 
							
								
							 |