EVERYTHING FROM THE OTHER REPO
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
_umount_points_list()
|
||||
{
|
||||
# List of characters to escape shamelessly stolen from "scp" completion
|
||||
local escape_chars='[][(){}<>\",:;^&!$=?`|\\'\'' \t\f\n\r\v]'
|
||||
|
||||
findmnt -lno TARGET | awk '
|
||||
|
||||
function literal_ere(s) {
|
||||
gsub(/[][^$.*?+{}\\()|]/, "\\\\&", s)
|
||||
return s
|
||||
}
|
||||
|
||||
{
|
||||
home_ere = literal_ere(ENVIRON["HOME"])
|
||||
print home_ere
|
||||
if ($0 ~ "^"home_ere) {
|
||||
homeless = $0
|
||||
sub("^"home_ere, "~", homeless)
|
||||
gsub("'"$escape_chars"'", "\\\\&", homeless)
|
||||
print homeless " "
|
||||
}
|
||||
pwd_ere = literal_ere(ENVIRON["PWD"])
|
||||
if ($0 ~ "^"pwd_ere) {
|
||||
reldir = $0
|
||||
sub("^"pwd_ere"/?", "", reldir)
|
||||
gsub("'"$escape_chars"'", "\\\\&", reldir)
|
||||
print "./" reldir " "
|
||||
print reldir " "
|
||||
}
|
||||
gsub("'"$escape_chars"'", "\\\\&")
|
||||
print $0 " "
|
||||
}'
|
||||
}
|
||||
|
||||
_umount_module()
|
||||
{
|
||||
local cur prev OPTS
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
case $prev in
|
||||
'-t'|'--types')
|
||||
local TYPES
|
||||
TYPES="
|
||||
$(\ls /lib/modules/$(uname -r)/kernel/fs | awk '{print $1, "no" $1}')
|
||||
$(awk '{print $NF, "no" $NF}' /proc/filesystems)
|
||||
"
|
||||
COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
|
||||
return 0
|
||||
;;
|
||||
'-h'|'--help'|'-V'|'--version')
|
||||
return 0
|
||||
;;
|
||||
'-N'|'--namespace')
|
||||
local NAMESPACE
|
||||
NAMESPACE="$(lsns --type mnt --output PATH --noheadings)"
|
||||
COMPREPLY=( $(compgen -W "$NAMESPACE" -- $cur) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
case $cur in
|
||||
-*)
|
||||
OPTS=" --all
|
||||
--all-targets
|
||||
--no-canonicalize
|
||||
--detach-loop
|
||||
--fake
|
||||
--force
|
||||
--internal-only
|
||||
--namespace
|
||||
--no-mtab
|
||||
--lazy
|
||||
--test-opts
|
||||
--recursive
|
||||
--read-only
|
||||
--types
|
||||
--quiet
|
||||
--verbose
|
||||
--help
|
||||
--version"
|
||||
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=( $( compgen -W '$( _umount_points_list )' -- "$cur" ) )
|
||||
}
|
||||
complete -F _umount_module -o nospace umount
|
||||
Reference in New Issue
Block a user