aboutsummaryrefslogtreecommitdiffstats
path: root/src/_ccache
diff options
context:
space:
mode:
authorPaul Seyfert <pseyfert.mathphys@gmail.com>2018-06-17 15:18:08 +0200
committerPaul Seyfert <pseyfert.mathphys@gmail.com>2018-06-19 16:40:48 +0200
commit66f1f211b9433401c088d651bdb12ca8a1a649d6 (patch)
tree851c23fd4021c9630ae74c39175855671ab3d962 /src/_ccache
parentadd ccache completion (diff)
downloadzsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar.gz
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar.bz2
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar.lz
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar.xz
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.tar.zst
zsh-completions-66f1f211b9433401c088d651bdb12ca8a1a649d6.zip
start environment variable completion
Diffstat (limited to 'src/_ccache')
-rw-r--r--src/_ccache126
1 files changed, 125 insertions, 1 deletions
diff --git a/src/_ccache b/src/_ccache
index a9dc010..504deb9 100644
--- a/src/_ccache
+++ b/src/_ccache
@@ -1,4 +1,5 @@
-#compdef ccache
+#compdef ccache -P -value-,CCACHE_*,-default-
+
# zsh completion script for ccache
# Copyright 2018 CERN for the benefit of the LHCb Collaboration.
@@ -46,6 +47,129 @@ _ccache_compilers() {
_command_names -e
}
+_ccache_booleans() {
+ _message 'There are no "false" values, unset variable to disable'
+ local description; description=${1:-boolean}
+ local booleans; booleans=(
+ 'true'
+ 'yes'
+ )
+ _describe -t booeans "$description" booleans
+}
+
+if [[ "$service" = -value-* ]]; then
+ case $service in
+ *CCACHE_*DIR*)
+ # CCACHE_BASEDIR: relative to which top level paths are hashed
+ # CCACHE_DIR: where the cache and config are kept
+ # CCACHE_TEMPDIR: where temporary files are kept
+ # all: a single path
+ _path_files -/
+ ;;
+ *CCACHE_NLEVELS*)
+ local -a one_eight
+ one_eight=(1 2 3 4 5 6 7 8)
+ _describe -t onetoeight "directory levels in the cache directory" one_eight
+ ;;
+ *CCACHE_CC*)
+ _ccache_compilers
+ ;;
+ *CCACHE_COMPILERCHECK*)
+ local -a compiler_check_values
+ compiler_check_values=(
+ 'content: the actual compiler binary'
+ 'mtime: mtime and size of the compiler'
+ 'none: ignore compiler for hashing'
+ 'string\:: any hard coded string (pre-computed version)'
+ '%compiler%\ -v:any compiler invocation output'
+ )
+ _describe -t compilerchecks "compiler information included in the hash" compiler_check_values
+ ;;
+ *CCACHE_*COMPRESS*)
+ _ccache_booleans "write compressed cache"
+ ;;
+ *CCACHE_COMPRESSLEVEL*)
+ local -a one_nine
+ one_nine=(1 2 3 4 5 6 7 8 9)
+ _describe -t onetonine "compression level (if using compression)" one_nine
+ ;;
+ *CCACHE_EXTENSION*)
+ # FIXME
+ ;;
+ *CCACHE_*DIRECT*)
+ _ccache_booleans "use direct mode"
+ ;;
+ *CCACHE_*DISABLE*)
+ _ccache_booleans "disable cache usage"
+ ;;
+ *CCACHE_EXTRAFILES*)
+ local sep=:
+ compset -P "*${sep}"
+ compset -S "${sep}*" || suf="$sep"
+
+ _files "" -r "${sep}"' /\t\t\-' "$@"
+ ;;
+ *CCACHE_*HARDLINK*)
+ _ccache_booleans "create hard links rather than copies"
+ ;;
+ *CCACHE_*HASHDIR*)
+ _ccache_booleans "include the cwd in the hash"
+ ;;
+ *CCACHE_IGNOREHEADERS*)
+ _dir_list
+ ;;
+ *CCACHE_*COMMENTS*)
+ _ccache_booleans "consider comments in hashing"
+ ;;
+ *CCACHE_LIMIT_MULTIPLE*)
+ _alternative ":clean up down to level (e.g. 0.8): "
+ ;;
+ *CCACHE_LOGFILE*)
+ _path_files -g "*(/) *.log"
+ ;;
+ *CCACHE_MAXFILES*)
+ _alternative ":maximum number of files in the cache (0= no limit): "
+ ;;
+ *CCACHE_MAXSIZE*)
+ ;;
+ *CCACHE_PATH*)
+ _alternative ':PATH for compiler lookup (instead of $PATH):_dir_list'
+ ;;
+ *CCACHE_PREFIX*)
+ # FIXME
+ ;;
+ *CCACHE_PREFIX_CPP*)
+ # FIXME
+ ;;
+ *CCACHE_*READONLY*)
+ _ccache_booleans "treat cache as read-only"
+ ;;
+ *CCACHE_*READONLY_DIRECT*)
+ _ccache_booleans "retrieve from read-only cache in direct mode"
+ ;;
+ *CCACHE_*RECACHE*)
+ _ccache_booleans "use cache in write-only mode"
+ ;;
+ *CCACHE_*CPP2*)
+ _ccache_booleans "pass originial rather than preprocessed source code to compiler"
+ ;;
+ *CCACHE_SLOPPINESS*)
+ # FIXME
+ ;;
+ *CCACHE_*STATS*)
+ _ccache_booleans "update statistics counters"
+ ;;
+ *CCACHE_UMASK*)
+ # FIXME
+ ;;
+ *CCACHE_*UNIFY*)
+ _ccache_booleans "normalise sources prior to processing"
+ ;;
+ esac
+
+ return
+fi
+
if [[ $words[2] == -* ]]; then
# if the first argument starts with -, we are in configure-ccache mode
# for this, _gnu_generic is okayish: