#!/bin/bash cleanup() { echo >&2 echo "Cleaning up..." >&2 for PID in $impids; do if kill -0 $PID 2> /dev/null; then kill $PID 2> /dev/null fi # get mean if it still exists if kill -0 $PID 2> /dev/null; then kill -9 $PID 2> /dev/null fi done # other cleanup stuff snipped } max_procs=$(grep -cs ^processor /proc/cpuinfo) mkfifo "$WORK_DIR/enc.fifo" 2>/dev/null "${TOYUV_CMD[@]}" < "$WORK_DIR/enc.fifo" | "${IMGENC_CMD[@]}" 2>/dev/null & # make intermediary fifos for images. They will get catted to enc.fifo for ((n=1; n<=max_procs; n++)); do [[ ! -e "$WORK_DIR/temp-${n}.ppm" ]] && mkfifo "$WORK_DIR/temp-${n}.ppm" done if $MENU_FADE ; then unset num_procs for ((frame=0; frame= ANIMENU_ENDFRAME-1)); then spin "\rProcessing frame $(($frame + 1)) " >&2 cat "${ppm_fifos[@]}" wait $impids unset num_procs ppm_fifos impids fi done > "$WORK_DIR/enc.fifo" fi