1#!/bin/sh
2#
3# $OpenBSD: follow-renames.sh,v 1.2 2012/11/03 08:41:25 ajacoutot Exp $
4
5# test if tail follows a file descriptor across renames
6
7#set TMPDIR to a nfs-based dir for nfs testing
8DIR=$(mktemp -d)
9echo DIR=${DIR}
10
11NAME=${0##*/}
12OUT=${DIR}/${NAME%%.sh}.out
13echo bar > ${DIR}/bar
14
15# retry until file appears for nfs
16RET=1
17while [ ${RET} == 1 ] ; do
18	tail -f ${DIR}/bar > ${OUT} &
19	RET=$?
20	PID=$!
21	sleep 1
22done
23
24mv ${DIR}/bar ${DIR}/bar2
25echo 'bar2' >> ${DIR}/bar2
26mv ${DIR}/bar2 ${DIR}/bar
27echo 'bar' >> ${DIR}/bar
28
29# hey nfs !
30sleep 5
31kill ${PID}
32diff -u ${OUT} ${0%%.sh}.out || exit 1
33
34# cleanup if okay
35rm -Rf ${DIR}
36