about summary refs log tree commit diff
path: root/Completion/Linux/Command/_chattr
diff options
context:
space:
mode:
authordana <dana@dana.is>2018-01-05 14:26:17 -0600
committerOliver Kiddle <opk@zsh.org>2018-01-06 00:13:51 +0100
commit0f0b602415961aa9ca069c9719a0fbb4bbb9941f (patch)
tree03001cfaf7ed12c26a354a996f52c4920d08cb76 /Completion/Linux/Command/_chattr
parent0c5f851021b3aacea96d9ca446282b8dab9f260d (diff)
downloadzsh-0f0b602415961aa9ca069c9719a0fbb4bbb9941f.tar.gz
zsh-0f0b602415961aa9ca069c9719a0fbb4bbb9941f.tar.xz
zsh-0f0b602415961aa9ca069c9719a0fbb4bbb9941f.zip
42231: new completion functions for simple utilities belonging to the 'Darwin' and 'Linux' groups.
Diffstat (limited to 'Completion/Linux/Command/_chattr')
-rw-r--r--Completion/Linux/Command/_chattr42
1 files changed, 42 insertions, 0 deletions
diff --git a/Completion/Linux/Command/_chattr b/Completion/Linux/Command/_chattr
new file mode 100644
index 000000000..bf46d8b89
--- /dev/null
+++ b/Completion/Linux/Command/_chattr
@@ -0,0 +1,42 @@
+#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