X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=usr_share_grml%2Fzsh%2Ffunctions%2Fpurge;fp=usr_share_grml%2Fzsh%2Ffunctions%2Fpurge;h=aa5066a6279e9a2880da615b4ad67777a3e7e5f5;hb=af1880477d99f931a695a9ea316d9ebf1ea53129;hp=0000000000000000000000000000000000000000;hpb=919ba75cf1d271284dbef293bf372cf279914bcf;p=grml-etc-core.git diff --git a/usr_share_grml/zsh/functions/purge b/usr_share_grml/zsh/functions/purge new file mode 100644 index 0000000..aa5066a --- /dev/null +++ b/usr_share_grml/zsh/functions/purge @@ -0,0 +1,52 @@ +# Clean up directory - remove well known tempfiles +emulate -L zsh + +setopt HIST_SUBST_PATTERN +local -a TEXTEMPFILES GHCTEMPFILES PYTEMPFILES FILES + +TEXTEMPFILES=(*.tex(N:s/%tex/'(log|toc|aux|nav|snm|out|tex.backup|bbl|blg|bib.backup|vrb|lof|lot|hd|idx)(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) + 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 -l $FILES + local ans + echo -n "Remove these files? [y/n] " + read -q ans; echo + if [[ $ans == "y" ]] ; then + $CURDIRSUDO rm ${FILES} + echo ">> $PWD purged, $NBFILES files removed" + else + echo "Ok. .. then not.." + fi +fi