diff options
Diffstat (limited to 'bash-completion/mount')
-rw-r--r-- | bash-completion/mount | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/bash-completion/mount b/bash-completion/mount new file mode 100644 index 0000000..a29f810 --- /dev/null +++ b/bash-completion/mount @@ -0,0 +1,102 @@ +_mount_module() +{ + local cur prev OPTS + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + case $prev in + '-t'|'--types') + local prefix realcur TYPES + TYPES=" + $(\ls /lib/modules/$(uname -r)/kernel/fs | awk '{print $1, "no" $1}') + $(awk '{print $NF, "no" $NF}' /proc/filesystems) + " + realcur="${cur##*,}" + prefix="${cur%$realcur}" + for WORD in $TYPES; do + if ! [[ $prefix == *"$WORD"* ]]; then + TYPE_COLS="$WORD ${TYPE_COLS:-""}" + fi + done + compopt -o nospace + COMPREPLY=( $(compgen -P "$prefix" -W "$TYPE_COLS" -S ',' -- $realcur) ) + return 0 + ;; + '-L'|'--label') + local LABELS + LABELS="$(lsblk -o LABEL -nr)" + COMPREPLY=( $(compgen -W "$LABELS" -- $cur) ) + return 0 + ;; + '-U'|'--uuid') + local UUIDS + UUIDS="$(lsblk -o UUID -nr)" + COMPREPLY=( $(compgen -W "$UUIDS" -- $cur) ) + return 0 + ;; + '-N'|'--namespace') + local NAMESPACE + NAMESPACE="$(lsns --type mnt --output PATH --noheadings)" + COMPREPLY=( $(compgen -W "$NAMESPACE" -- $cur) ) + return 0 + ;; + '--options-mode') + COMPREPLY=( $(compgen -W "ignore append prepend replace" -- $cur) ) + return 0 + ;; + '--options-source') + COMPREPLY=( $(compgen -W "fstab mtab disable" -- $cur) ) + return 0 + ;; + '-h'|'--help'|'-V'|'--version') + return 0 + ;; + esac + case $cur in + -*) + OPTS=" --all + --no-canonicalize + --fake + --fork + --fstab + --help + --internal-only + --show-labels + --no-mtab + --options + --options-mode + --options-source + --options-source-force + --test-opts + --read-only + --types + --source + --target + --verbose + --version + --read-write + --namespace + --label + --uuid + --bind + --move + --rbind + --make-shared + --make-slave + --make-private + --make-unbindable + --make-rshared + --make-rslave + --make-rprivate + --make-runbindable + --mkdir" + COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) + return 0 + ;; + esac + local IFS=$'\n' + compopt -o filenames + COMPREPLY=( $(compgen -f -- $cur) ) + return 0 +} +complete -F _mount_module mount |