summaryrefslogtreecommitdiffstats
path: root/bash-completion/eject
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:14:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:14:44 +0000
commit30ff6afe596eddafacf22b1a5b2d1a3d6254ea15 (patch)
tree9b788335f92174baf7ee18f03ca8330b8c19ce2b /bash-completion/eject
parentInitial commit. (diff)
downloadutil-linux-upstream.tar.xz
util-linux-upstream.zip
Adding upstream version 2.36.1.upstream/2.36.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'bash-completion/eject')
-rw-r--r--bash-completion/eject65
1 files changed, 65 insertions, 0 deletions
diff --git a/bash-completion/eject b/bash-completion/eject
new file mode 100644
index 0000000..27d0465
--- /dev/null
+++ b/bash-completion/eject
@@ -0,0 +1,65 @@
+_eject_module()
+{
+ local cur prev OPTS
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ case $prev in
+ '-a'|'--auto'|'-i'|'--manualeject')
+ COMPREPLY=( $(compgen -W "off on" -- $cur) )
+ return 0
+ ;;
+ '-c'|'--changerslot')
+ # FIXME: there must be way to determine slots
+ COMPREPLY=( $(compgen -W "slot" -- $cur) )
+ return 0
+ ;;
+ '-x'|'--cdspeed')
+ COMPREPLY=( $(compgen -W "$(eject --listspeed 2>/dev/null)" -- $cur) )
+ return 0
+ ;;
+ '-h'|'--help'|'-V'|'--version')
+ return 0
+ ;;
+ esac
+ case $cur in
+ -*)
+ OPTS="--auto
+ --changerslot
+ --default
+ --floppy
+ --force
+ --manualeject
+ --no-unmount
+ --no-partitions-unmount
+ --noop
+ --proc
+ --tape
+ --cdrom
+ --scsi
+ --trayclose
+ --traytoggle
+ --verbose
+ --cdspeed
+ --listspeed
+ --help
+ --version"
+ COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+ return 0
+ ;;
+ esac
+ local DEVS
+ DEVS="$(for I in /sys/class/block/*/removable; do
+ if [ $(cat $I) -ne 0 ]; then
+ OLD_IFS=$IFS
+ IFS='/';
+ ARR=($I)
+ echo "/dev/${ARR[4]}"
+ IFS=$OLD_IFS
+ fi
+ done)"
+ compopt -o bashdefault -o default
+ COMPREPLY=( $(compgen -W "$DEVS" $cur) )
+ return 0
+}
+complete -F _eject_module eject