Subject: bug#9742: touch option for existence?

From: Morty <[email-masked]>
Date: Thu, 13 Oct 2011 09:21:05 -0400

On Thu, Oct 13, 2011 at 10:05:05AM +0100, Pádraig Brady wrote:

> Note the above is easier to express in shell like:
>
>   [ -e "$file" ] || touch "$file"

Thanks, I'm familiar with it.  :)

> But that is racy.  If you were using touch for locking purposes

I'm using touch to make sure the file exists before an operation that
will yield an error if it doesn't exist.  For example:

resolv=/etc/resolv.conf
touch $resolv
ci -l -t-$resolv -m"check-in existing" $resolv
grep -q domain $resolv || echo domain $domain >> $resolv
ci -l -m"add domain $domain" $resolv

The intent of code like the above is to make sure a certain file is in
revision control and contains a certain setting.  If the file already
is in revision control and has the setting, the code should do
nothing.  But touch changes the mtime.  The problem could be fixed by
slinging around ifs, but that's inelegant.

- Morty