]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
coresched: add bash completions
authorThijs Raymakers <thijs@raymakers.nl>
Wed, 22 May 2024 14:24:01 +0000 (16:24 +0200)
committerThijs Raymakers <thijs@raymakers.nl>
Wed, 22 May 2024 14:27:08 +0000 (16:27 +0200)
Signed-off-by: Thijs Raymakers <thijs@raymakers.nl>
bash-completion/coresched

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3a14c5080b3ebdd667cceea51ae12d77836d3ea1 100644 (file)
@@ -0,0 +1,51 @@
+_coresched_module()
+{
+  compopt -o nosort
+
+  COMPREPLY=()
+
+  # If the previous argument equals the program name
+  if [[ "$1" == "$3" ]]; then
+      COMPREPLY=( $(compgen -W "get new copy --help --version" -- "$2") )
+      return 0
+  fi
+
+  case $3 in
+    "-s"|"--source"|"-d"|"--dest")
+      local pids sorted_pids
+      pids=$(cd /proc && echo [0-9]*)
+      sorted_pids=$(echo "${pids[@]}" | tr ' ' '\n' | sort -nr | tr '\n' ' ')
+      COMPREPLY=( $(compgen -W "$sorted_pids" -- "$2") )
+      return 0
+      ;;
+    "-t"|"--dest-type")
+      COMPREPLY=( $(compgen -W "pid tgid pgid" -- "$2") )
+      return 0
+      ;;
+    "--")
+      COMPREPLY=( $(compgen -c "$2") )
+      return 0
+      ;;
+  esac
+
+  local function="${COMP_WORDS[1]}"
+  case $function in
+    'get')
+      COMPREPLY=( $(compgen -W "--source" -- "$2") )
+      return 0
+      ;;
+    'new')
+      COMPREPLY=( $(compgen -W "--dest -- --dest-type --verbose" -- "$2") )
+      return 0
+      ;;
+    'copy')
+      COMPREPLY=( $(compgen -W "--source --dest -- --dest-type --verbose" -- "$2") )
+      return 0
+      ;;
+    '-h'|'--help'|'-V'|'--version')
+      return 0
+      ;;
+  esac
+  return 0
+}
+complete -F _coresched_module coresched