New & Improved "ifdh cp" / "ifdh mv"

ifdh cp [--force=srm|gridftp|cpn|expftp] [-r] src1 dest1 [ ";" src2 ... dest2 [ ";" ... ] ]
ifdh cp [--force=srm|gridftp|cpn|expftp] -f listfile
ifdh cp [--force=srm|gridftp|cpn|expftp] -D [-r] src1 src2 destdir1 [ ";" src3 src4 ... destdir2 [ ";" ... ] ]

One can also set IFDH_FORCE= in the environment rather than using --force=

This should do:

  • multiple copies with one lock * transparently use: ** cpn ** srm -- srmcp (via bestman) ** gridftp -- globus_url_copy (via bestman) ** expftp -- globus_url_copy (via per-experiment gridftp server, files owned by the user who submitted the grid job)

as appropriate.

ifdh mv

should do the same, but remove the source files when/if the copy is successful.

Note that using -r with --force=srm is an error.

Issue: plain cp / cpn will copy a source file to a destination directory, but neither
srmcp nor globus-url-copy will. So to enforce using -D when the destination is a directory,
we should probably make it fail even if using CPN, if the destination is a directory but you did
not specify -D.