procmail
[Top] [All Lists]

Re: testing for existence of a file without a fork

2002-05-02 13:07:01
| Good point.  However, if you tell it to create 2 lockfiles, one of which
| it will never be able to create, it will tidy up after itself.
| Something like:
|
|    lockfile -r0 plainfile /dev/null/blah
|
| Obviously it will never be able to create the file 'blah' in the
| directory '/dev/null/'!

That's clever!  And if plainfile existed previously, lockfile gives up right
then and doesn't remove it.  Interesting.

| The exitcode will differ depending on whether or not 'plainfile' exists.
| It'll return 69 if plainfile is there, and 73 if it isn't.  Of course,
| you then need to do extra work to grab and test the return value:
|
|   DUMMY=`lockfile -r0 plainfile /dev/null/blah`
|   RET=$?
|
|   :0
|   * RET ? 69

There's really very little extra work:

 :0 # first condition scores -69 if plainfile exists, -73 if it doesn't
 * unset ?? -1^1 ! ? lockfile -r0 plainfile /dev/null/blah
 * 71^0
 action_if_file_exists

or to test for nonexistence,

 :0 # first condition scores 69 if plainfile exists, 73 if it doesn't
 * unset ?? 1^1 ! ? lockfile -r0 plainfile /dev/null/blah
 * -71^0
 action_if_file_does_not_exist

| which seems like too much pain when head will do the job.

But it's fascinating.  Thank you.  Also, if you add lockfile's -! option:

 lockfile -! -r0 plainfile /dev/null/blah

it returns 0 if plainfile already existed and 73 if it did not and lockfile
choked instead on the permissions problem of creating /dev/null/blah.

Anyhow, I'm sticking with head -0 unless somebody thinks of a way to do it
wholly in procmail internals.



_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail