#!/bin/zsh
setopt extendedglob
autoload -Uz colors; colors
typeset -ga test_args
typeset -g run evt fname
# typeset -gT PYTHONPATH pythonpath
# pythonpath=( $0:h ~/.local/bzr/*/python(/N) /usr/local/bzr/*/python(/N) $pythonpath )
# export PYTHONPATH
test_args=( "$@" )
do_test() {
shelltest *.test -c "$test_args[@]"
# time py.test "$test_args"
}
trigger_check() {
local ret show
ret=0; show=1
case $fname in
(*.py[co]) ret=1;;
(*.sw[px]) ret=1; show=0;;
(*.swpx) ret=1;;
(*.tmp) ret=1;;
(*'~') ret=1;;
(*__pycache__*) ret=1;;
(*/bin/[0-9]*) ret=1;;
(*/.hypothesis*) ret=1; show=0;;
(*/tests/*) ret=1; show=0;;
(*/test_error.sql) ret=1;;
(*/commlog/*) ret=1; show=0;;
(*/.bzr/*) ret=1; show=0;;
esac
[[ $fname =~ '.*/[0-9]+$' ]] && ret=1
if (($ret)); then
(($show)) && print -r - "$fname $evt"
else
print -r "$fg[green]$fname $evt$reset_color"
fi
return $ret
}
coproc inotifywait -m -q -e create,move,close_write --format '%e %w%f' -r \
--exclude='\.bzr/' --exclude='/commlog/' \
.
while read -prt 0.5 evt fname; do
print -r "$fg[blue]$fname $evt$reset_color"
done
do_test
while read -pr evt fname; do
trigger_check || continue
while read -prt 0.5 evt fname; do
print -r "$fg[blue]$fname $evt$reset_color"
done
do_test
done
#while inotifywait -q --exclude='.*sw[p-z]' --exclude='.*commlog.*' -e create,move,close_write **/*~commlog*~*__pycache__(/) **/*.py || (($? == 2)); do