#!/bin/bash

RD='\033[0;31m'
GN='\033[0;32m'
DM='\033[2m'
NC='\033[0m'

if [[ $# != 1 ]]; then

	echo -e "Spy what process are opening files. Work in progress.\n  Usage: $0 file"

else

	old_pids=("")

	while true; do

		pids=( `fuser $1 2>/dev/null` )

		for pid in ${pids[@]}; do

			if [[ ! "${old_pids[@]}" =~ "${pid}" ]]; then
				cmd=$( ps -p $pid -o command | tail -n1 )
				echo -e "$GN[>]$NC $cmd $DM($pid)$NC"
			fi

		done

		for pid in ${old_pids[@]}; do
			
			if [[ ! "${pids[@]}" =~ "${pid}" ]]; then
				cmd=$( ps -p $pid -o command | tail -n1 )
				echo -e "$RD[<]$NC $cmd $DM($pid)$NC"
			fi

		done

		old_pids=${pids[@]}

	done

fi
