#!/bin/bash # Waits for MacPorts to finish what it's doing, then exits. PORT_TCLSH="$(which port-tclsh 2>&1)" PORT_TCLSH="$(readlink "$PORT_TCLSH" || echo "$PORT_TCLSH")" if [ ! -x "$PORT_TCLSH" ]; then echo "port-tclsh command not found" 1>&2 exit 1 fi PROGRESS_CHARS="/-\\|" PROGRESS_INDEX=0 MESSAGE="Waiting for MacPorts to finish what it's doing... " cleanup() { printf "\r%${#MESSAGE}s \r" tput cnorm exit 0 } trap cleanup INT tput civis while [ -n "$(ps aww | grep "$PORT_TCLSH" | grep -v grep)" ]; do printf "\r${MESSAGE}${PROGRESS_CHARS:$PROGRESS_INDEX:1}" PROGRESS_INDEX=$((($PROGRESS_INDEX + 1) % ${#PROGRESS_CHARS})) sleep 1 done cleanup