/
purge
58 lines (47 loc) · 1.43 KB
/
purge
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
# Clean up directory - remove well known tempfiles
emulate -L zsh
setopt HIST_SUBST_PATTERN
local -a TEXTEMPFILES GHCTEMPFILES PYTEMPFILES
local -a -U FILES
[[ -d "$1" ]] && { TRAPEXIT() { popd -q } && pushd -q "$1" }
TEXTEMPFILES=(*.tex(N-.:s/%tex/'(log|toc|aux|nav|snm|out|tex.backup|bbl|blg|bib.backup|vrb|lof|lot|hd|idx|fdb_latexmk|fls|glo|ilg|ind|synctex.gz)(.N)'/))
GHCTEMPFILES=(*.(hs|lhs)(N-.:r:s/%/'.(hi|hc|(p|u|s)_(o|hi))(.N)'/))
PYTEMPFILES=(*.py(N-.:s/%py/'(pyc|pyo)(.N)'/))
LONELY_MOOD_FILES=((*.mood)(.NDe:'local -a AF;AF=( ${${REPLY#.}%mood}(mp3|flac|ogg|asf|wmv|aac)(N-.) ); [[ -z "$AF" ]]':))
ZSH_COMPILED=(*.zwc(.NDe:'[[ -f ${REPLY%.zwc} && ${REPLY%.zwc} -nt ${REPLY} ]]':))
FILES=(
*~(.N)
\#*\#(.N)
*.o(.N)
*.d(.N)
*.d.<->(.N)
a.out(.N)
(*.|)core(|.<->)(.N)
*.cmo(.N)
*.cmi(.N)
.*.swp(.N)
*.(orig|rej)(.DN)
*.dpkg-(old|dist|new)(DN)
._(cfg|mrg)[0-9][0-9][0-9][0-9]_*(N)
${~TEXTEMPFILES}
${~GHCTEMPFILES}
${~PYTEMPFILES}
${LONELY_MOOD_FILES}
${ZSH_COMPILED}
)
local NBFILES=${#FILES}
local CURDIRSUDO=""
[[ ! -w ./ ]] && CURDIRSUDO=$SUDO
if [[ $NBFILES > 0 ]] ; then
print "in $PWD:"
print -f " %s\n" $FILES
local ans
echo -n "Remove these files? [y/N] "
read -q ans; echo
if [[ $ans == [yY] ]] ; then
$CURDIRSUDO rm ${FILES}
echo ">> $PWD purged, $NBFILES files removed"
else
echo "Ok. .. then not.."
fi
fi