Pádraig Brady wrote: > On 20/03/10 08:32, Jim Meyering wrote: >> Hello, >> >> [Cc'ing bug-coreutils...] >> >> Giuseppe proposed to add the --in-place option to GNU cppi, >> (cppi is a small program that can act as a filter >> http://savannah.gnu.org/forum/forum.php?forum_id=6210 >> but cppi is so small that adding even that single, relatively >> simple option would make it substantially more complicated. >> >> I'm nearly certain I've seen a program (possibly a small >> perl script) that can effectively add the --in-place >> functionality to any filter program, but so far my searches >> have been in vain. >> >> I want a tool that works like this: >> >> in-place [--backup] 'cppi ...options' *.c >> >> For each .c file, it would apply the filter program, and upon each >> successful exit, it would update the .c file in place (atomically, >> of course) with the output from the filter. >> >> Can anyone point to existing code that does that? > > Well we were talking about a small "replace" or "inplace" script, > in coreutils/contrib/ which would use the facilities of various coreutils > http://lists.gnu.org/archive/html/bug-coreutils/2009-09/msg00327.html > I didn't get any feedback on the new cp --attributes-only option > though so was worried about adding this new interface.
Sorry I didn't reply. Your --attributes-only option looks worthwhile. However, I think the default behavior of an update-via-filter-and-replace program should use the temp-file-in-same-directory-and-rename technique rather than the non-atomic alternative. The case in which the destination directory is unwritable is far less common, so if we support that at all, it should be only as a fallback, or perhaps only if some option is specified.
