mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-11 21:50:57 +01:00
42 lines
1,019 B
Text
42 lines
1,019 B
Text
#compdef chattr
|
|
|
|
local ret=1
|
|
local -a context line state state_descr
|
|
local -A opt_args val_args
|
|
|
|
_arguments -s -S : \
|
|
'-f[suppress most error messages]' \
|
|
"-p+[set file's project number]:project number" \
|
|
'-R[act recursively]' \
|
|
'-V[output verbosely]' \
|
|
"-v+[set file's version/generation number]:version/generation number" \
|
|
'1: :->attrs' \
|
|
'*: :_files' \
|
|
&& ret=0
|
|
|
|
[[ $state == attrs ]] &&
|
|
if compset -P '*[=+-]'; then
|
|
# These modes can't be changed with chattr: [EhINXZ]
|
|
_values -S '' attribute \
|
|
'A[no atime updates]' \
|
|
'a[append only]' \
|
|
'C[no copy on write]' \
|
|
'c[compressed]' \
|
|
'D[no synchronous directory updates]' \
|
|
'd[no dump]' \
|
|
'e[extent format]' \
|
|
'i[immutable]' \
|
|
'j[data journalling]' \
|
|
'P[project hierarchy]' \
|
|
'S[synchronous updates]' \
|
|
's[secure deletion]' \
|
|
'T[top of directory hierarchy]' \
|
|
't[no tail-merging]' \
|
|
'u[undeletable]' \
|
|
&& ret=0
|
|
else
|
|
compset -P '*'
|
|
_values -S '' operator = + - && ret=0
|
|
fi
|
|
|
|
return ret
|