It appears that the desired effect was to support
src = "dir" -> dest/dir
src = "dir/" -> dest
but cp -R already handles this, provided the trailing slash does not
get consumed by the shell.
The wildcard causes problems when multiple files match the
shell glob, e.g.
UploadDir("/tmp", "./salt*", [])
where my working dir contains
- salt
- salt-foo
will error.
* Single quotes around chroot command cause it to fail.
* The chroot command also gets passed through the CommandWrapper template, so having sudo would clash with however the user wants to run it.
* Fix spelling mistake.
/cc @mwhooker - I changed the interface up a bit to return an error,
since things should return errors in Go (the ui.Error bit was kind of
ghetto because it had no way to bubble that error up except through the
UI).
Using this, I made it so that the communicator uses both a
CommandWrapper and ShellCommand with chroot so that the chroot commannd
is also wrapped (it wasn't before).
I think the functionality of all this is the same but I'd love if you
could look it over and make sure.