#!/usr/bin/env bash
PMOVDIR=${PMOVDIR:-.}
OUTDIR=${OUTDIR:-$PMOVDIR/pmovie-scan}
mkdir -p $OUTDIR

NPROCS=${NPROCS:-2}
SLEEPTIME=${SLEEPTIME:-5}
HASHFILE=${HASHFILE:-$OUTDIR/hash.d}
SELECTED=${SELECTED:-$OUTDIR/selected.npy}
TRAJOUT=${TRAJOUT:-"trajectories.npz"}
[ -n "$NEWTRAJNPZ" ] && export TRAJOPT="-n"
#now, we search
echo "searching pmovies for hashes at $(date)"
for i in $(ls $PMOVDIR/pmovie*.p4*); do
    while [ $(pgrep -f searchp4.py |  wc -l ) -ge $NPROCS ]; do sleep $SLEEPTIME; done;
    echo "search: searching $i"
    sleep 0.2;
    searchp4.py -D $OUTDIR $i $HASHFILE $SELECTED &
done
while [ $(pgrep -f searchp4.py | wc -l) -gt 0 ]; do
    echo "waiting for $(pgrep -f search.py | wc -l) process(es)"
    sleep $SLEEPTIME;
done
echo "gathering for trajectories $(date)"

traj.py $TRAJOPT $OUTDIR/$TRAJOUT $(ls $OUTDIR/_*.npz | grep '_[0-9]\+\.npz' | sort -V)
rm -v $( ls $OUTDIR/_*.npz | grep '_[0-9]\+\.npz' )
echo "done at $(date)"
if [ -e $OUTDIR/$TRAJOUT ]; then
    echo "file is available at $HOSTNAME:$PWD/$OUTDIR/TRAJOUT"
else
    echo "trajectories is not found, check the log for errors."
fi;
