summaryrefslogblamecommitdiffstats
path: root/bash-completion/taskset
blob: 5311316a241c9042e84410491be3e765ebd9f5e9 (plain) (tree)





































                                                                                                           
_taskset_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-c'|'--cpu-list')
			local CPULIST
			# FIXME: will propose only binding to a cpu.
			# Maybe this should add comma, and continue?
			CPULIST=$(sed 's/^/{/; s/-/../g; s/,/} {/g; s/$/}/' /sys/devices/system/cpu/online)
			COMPREPLY=( $(compgen -W "$(eval echo $CPULIST)" -- $cur) )
			return 0
			;;
		'-p'|'--pid')
			local PIDS
			# FIXME: the pid argument is ambiguous.  When
			# setting an affinity the optarg has to be cpu
			# mask.  The following is good only for getting
			# affinity.
			PIDS=$(for I in /proc/[0-9]*; do echo ${I##"/proc/"}; done)
			COMPREPLY=( $(compgen -W "$PIDS" -- $cur) )
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="-a --all-tasks -p --pid -c --cpu-list -h --help -V --version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	compopt -o bashdefault
	COMPREPLY=( $(compgen -c -- $cur) )
	return 0
}
complete -F _taskset_module taskset