1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# (C) 2013-2025 magicant
# Completion script for the "git-clean" command.
# Supports Git 2.48.1.
function completion/git-clean {
WORDS=(git clean "${WORDS[2,-1]}")
command -f completion//reexecute
}
function completion/git::clean:arg {
OPTIONS=( #>#
"d; remove untracked directories"
"f --force; really remove untracked files"
"n --dry-run; don't actually remove files, but show what would be removed"
"i --interactive; interactively choose files to remove"
"q --quiet; print error messages only"
"e: --exclude:; skip files whose names match the specified pattern"
"X; remove ignored files only"
"x; remove ignored files too"
) #<#
command -f completion//parseoptions -es
case $ARGOPT in
(-)
command -f completion//completeoptions
;;
(e|--exclude)
complete -P "$PREFIX" -f
;;
('')
: DEBUG "${WORDS}"
command -f completion/git::clean:opr
;;
esac
}
# only complete untracked files
function completion/git::clean:opr {
typeset arg filter='^?'
for arg in "${WORDS[2,-1]}"; do
case $arg in
(-X)
filter='^!';;
(-x)
filter='^[?!]';;
(--)
break;;
esac
done
typeset prefix="${TARGETWORD%"${TARGETWORD##*/}"}"
command -f completion/git::completefilteredpath "$filter" \
--ignore-submodules=all --ignored --untracked-files=all
}
# vim: set ft=sh ts=8 sts=8 sw=8 et:
|