summaryrefslogblamecommitdiffstats
path: root/bash-completion/blkid
blob: 129a677cb0d2363de9dd8f991d0bc694a3dc5acb (plain) (tree)
1
2
3
4
5
6
7
8
9

               

                                      



                                          
                                    
                                       



                                                           
                                


                                                                                      
                                   


                                                                 

                                                                                

                                
                               


                                                                                                             
                              


                                                                                                            
                              


                                                                  
                                


                                                                    

                                                                      
                          




                                                                         
                          
                                               

                                
            





                                                             
                                                            





                                                                                       

                    
















                                                  
                                                 


                                         



                                                                        
                                                                 


                               
_blkid_module()
{
	local cur prev OPTS OUTPUT_ALL
	OUTPUT_ALL=''
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-c'|'--cache-file')
			local IFS=$'\n'
			compopt -o filenames
			COMPREPLY=( $(compgen -f -- $cur) )
			return 0
			;;
		'-o'|'--output')
			COMPREPLY=( $(compgen -W "value device export full" -- $cur) )
			return 0
			;;
		'-s'|'--match-tag')
			COMPREPLY=( $(compgen -W "tag" -- $cur) )
			return 0
			;;
		'-t'|'--match-token')
			COMPREPLY=( $(compgen -W "TYPE= LABEL= UUID=" -- $cur) )
			return 0
			;;
		'-L'|'--label')
			COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-label/ 2>/dev/null && echo *)" -- $cur) )
			return 0
			;;
		'-U'|'--uuid')
			COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-uuid/ 2>/dev/null && echo *)" -- $cur) )
			return 0
			;;
		'-S'|'--size')
			COMPREPLY=( $(compgen -W "size" -- $cur) )
			return 0
			;;
		'-O'|'--offset')
			COMPREPLY=( $(compgen -W "offset" -- $cur) )
			return 0
			;;
		'-u'|'--usages')
			OUTPUT_ALL={,no}{filesystem,raid,crypto,other}
			;;
		'-n'|'--match-types')
			OUTPUT_ALL="
				$(awk '{print $NF}' /proc/filesystems)
				$(\ls /lib/modules/$(uname -r)/kernel/fs)
			"
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	if [ -n "$OUTPUT_ALL" ]; then
		local prefix realcur OUTPUT_ALL OUTPUT
		realcur="${cur##*,}"
		prefix="${cur%$realcur}"
		for WORD in $OUTPUT_ALL; do
			if ! [[ $prefix == *"$WORD"* ]]; then
				OUTPUT="$WORD ${OUTPUT:-""}"
			fi
		done
		compopt -o nospace
		COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- "$realcur") )
		return 0
	fi
	case $cur in
		-*)
			OPTS="
				--cache-file
				--no-encoding
				--garbage-collect
				--output
				--list-filesystems
				--match-tag
				--match-token
				--list-one
				--label
				--uuid
				--probe
				--info
				--size
				--offset
				--usages
				--match-types
				--no-part-details
				--help
				--version
			"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
	return 0
}
complete -F _blkid_module blkid