mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-21 00:01:26 +01:00
22797: generic FUSE completion support functions.
This commit is contained in:
parent
232c068f3c
commit
a1ce5f2148
3 changed files with 127 additions and 0 deletions
|
@ -1,5 +1,9 @@
|
||||||
2006-09-30 Clint Adams <clint@zsh.org>
|
2006-09-30 Clint Adams <clint@zsh.org>
|
||||||
|
|
||||||
|
* 22797: R. Ramkumar: Completion/Linux/Type/_fuse_arguments,
|
||||||
|
Completion/Linux/Type/_fuse_values: generic FUSE completion
|
||||||
|
support functions.
|
||||||
|
|
||||||
* 22796: R. Ramkumar: Completion/Unix/Command/_subversion:
|
* 22796: R. Ramkumar: Completion/Unix/Command/_subversion:
|
||||||
fix misspelling of IPREFIX.
|
fix misspelling of IPREFIX.
|
||||||
|
|
||||||
|
|
53
Completion/Linux/Type/_fuse_arguments
Normal file
53
Completion/Linux/Type/_fuse_arguments
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
local ret long rawret nm=${compstate[nmatches]} fsopt cvalsvar
|
||||||
|
typeset -a fargs opts
|
||||||
|
|
||||||
|
fargs=(
|
||||||
|
'(-d -f)-d[enable debug output]'
|
||||||
|
'-f[enable foreground operation]'
|
||||||
|
'-r[mount filesystem read-only]'
|
||||||
|
'-s[disable multi-threaded operation]'
|
||||||
|
'(-h --help)'{-h,--help}'[display help and exit]'
|
||||||
|
'(-V --version)'{-V,--version}'[show version information and exit]'
|
||||||
|
)
|
||||||
|
|
||||||
|
(( $# )) || fargs+='*:default: _default'
|
||||||
|
|
||||||
|
long=$argv[(I)--]
|
||||||
|
if (( long )); then
|
||||||
|
argv[long]=($fargs --)
|
||||||
|
else
|
||||||
|
set -- $@ $fargs
|
||||||
|
fi
|
||||||
|
|
||||||
|
while [[ $1 == -(O*|F*|[CRWsw]) ]]; do
|
||||||
|
if [[ $1 == -F?* ]]; then
|
||||||
|
cvalsvar=${1[3,-1]}
|
||||||
|
elif [[ $1 == -F ]]; then
|
||||||
|
cvalsvar=$2
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
opts+=$1
|
||||||
|
[[ $1 == -R ]] && rawret=yes
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $cvalsvar != - ]]; then
|
||||||
|
fsopt='*-o[specify mount options]:mount option:_fuse_values'
|
||||||
|
[[ -n $cvalsvar ]] && fsopt+=" -A $cvalsvar"
|
||||||
|
fsopt+=' mount\ option'
|
||||||
|
set -- $@ $fsopt
|
||||||
|
fi
|
||||||
|
|
||||||
|
_arguments -R $opts $@
|
||||||
|
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if [[ $ret == 300 ]]; then
|
||||||
|
compstate[restore]=
|
||||||
|
[[ -z $rawret ]] && ret=$(( nm == $compstate[nmatches] ))
|
||||||
|
fi
|
||||||
|
|
||||||
|
return ret
|
70
Completion/Linux/Type/_fuse_values
Normal file
70
Completion/Linux/Type/_fuse_values
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
local ret stateset fvals cvalsvar cvalind
|
||||||
|
typeset -a fvals opts
|
||||||
|
|
||||||
|
if [[ $1 = -O* ]]; then
|
||||||
|
opts+=$1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
opts+=(-s , -S =)
|
||||||
|
|
||||||
|
cvalind=$argv[(I)-A*]
|
||||||
|
|
||||||
|
while (( cvalind )); do
|
||||||
|
if [[ ${(P)cvalind} = -A?* ]]; then
|
||||||
|
cvalsvar=${(P)cvalind[3,-1]}
|
||||||
|
argv[cvalind]=()
|
||||||
|
else
|
||||||
|
cvalsvar=$argv[cvalind+1]
|
||||||
|
argv[cvalind,cvalind+1]=()
|
||||||
|
fi
|
||||||
|
cvalind=$argv[(I)-A*]
|
||||||
|
done
|
||||||
|
|
||||||
|
fvals=(
|
||||||
|
'ro[mount filesystem read-only]'
|
||||||
|
'allow_other[allow access to other users]'
|
||||||
|
'allow_root[allow access to root]'
|
||||||
|
'nonempty[allow mounts over non-empty file/dir]'
|
||||||
|
'default_permissions[enable permission checking by kernel]'
|
||||||
|
'fsname[set filesystem name]:name'
|
||||||
|
'large_read[issue large read requests (linux v2.4 only)]'
|
||||||
|
'max_read[set maximum size of read requests]:size'
|
||||||
|
'hard_remove[immediate removal (do not hide files)]'
|
||||||
|
'use_ino[let filesystem set inode numbers]'
|
||||||
|
'readdir_ino[try to fill in d_ino in readdir]'
|
||||||
|
'direct_io[use direct I/O]'
|
||||||
|
'kernel_cache[cache files in kernel]'
|
||||||
|
'umask[set file permissions]:permission mask (octal)'
|
||||||
|
'uid[set file owner]:user id:'
|
||||||
|
'gid[set file group]:group id:'
|
||||||
|
'entry_timeout[cache timeout for names]:timeout (s)'
|
||||||
|
'negative_timeout[cache timeout for deleted names]:timeout (s)'
|
||||||
|
'attr_timeout[cache timeout for attributes]:timeout (s)'
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ -n $cvalsvar ]] && set -- $@ ${(P)cvalsvar}
|
||||||
|
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
set -- 'mount options' $fvals
|
||||||
|
else
|
||||||
|
set -- $@ $fvals
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $state ]]; then
|
||||||
|
stateset=$state
|
||||||
|
state=
|
||||||
|
fi
|
||||||
|
|
||||||
|
_values $opts $@ && ret=0
|
||||||
|
|
||||||
|
if [[ -n $state ]]; then
|
||||||
|
compstate[restore]=
|
||||||
|
elif [[ -n $stateset ]]; then
|
||||||
|
state=$stateset
|
||||||
|
else
|
||||||
|
unset state
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $ret
|
Loading…
Reference in a new issue