On Feb 14, 2007, at 2:00 AM, Mark Duling wrote:
Like I said, file copy (or just copy, after my commit) will in fact copy directories.
I'm sorry to be so dull. You seem to be saying this:
copy ${sourcedir} ${destdir}
is equivalent to this:
system "cp -R ${sourcedir} ${destdir}"
But doesn't 'eval xinstall [glob ${source}/* ${dest}' fail if there are nested directories? So I thought perhaps your new copy command would have the same problem. I'm sorry we're talking by each other, but I have some preconceptions that I'm having trouble getting beyond at the moment.
xinstall and file copy are different - xinstall is implemented in pextlib, and apparently doesn't recursively copy directories. It's a shame. So yeah, while xinstall won't handle directories, copy will do it just fine. The difference is that copy won't handle file permissions, but xinstall does.
find basedir {filter_expression} {do stuff with $filename}
Because if filter_expression = "*", then is there a tcl command I can use in {do stuff with ..} that doesn't care if something is a file or directory? Because I thought that the TCL extensions I've learned so far require me to know in advance whether I'm copying files or directories, so I wonder if it is possible for {filter_expression} to be "*".
Actually, filter_expression isn't a glob, it's a tcl expression. In the current incarnation of find, you want to use something like {expr 1}. That will make it work on everything. That said, it will recurse into directories, so if you want the equivalent of the above xinstall command you'd simply do eval file copy [list [glob -directory ${source} *]] ${dest} Of course, this does have the problem where glob won't find dot- files. and if you use * .* instead of the *, it will, but it'll find . and .. as well. It's annoying. -- Kevin Ballard http://kevin.sb.org eridius@macports.org http://www.tildesoft.com