_flock_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-w'|'--timeout')
			COMPREPLY=( $(compgen -W "seconds" -- $cur) )
			return 0
			;;
		'-E'|'--conflict-exit-code')
			COMPREPLY=( $(compgen -W "{0..255}" -- $cur) )
			return 0
			;;
		'-c'|'--command')
			compopt -o bashdefault
			COMPREPLY=( $(compgen -c -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="--shared
				--exclusive
				--unlock
				--nonblock
				--timeout
				--conflict-exit-code
				--close
				--command
				--help
				--version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- ${cur:-"/"}) )
	return 0
}
complete -F _flock_module flock
