Using Commands from Pluto

You’re very welcome. And I just realized that I forgot to mention that the command object constructed by Julia might need to be created a bit carefully when it contains special characters (like the * in your example). Julia actually doesn’t run the commands in any shell, but executes them directly. So the * probably doesn’t do what you would like it to.

E.g. if the command you want to run is

cmd = `fossil add harold/tiddlers/*`
run(cmd)

Julia first complains about the unquoted * (so you would need to write \*) but then also won’t do what you want, because the expansion of * to all the files in the directory is a feature of Bash (or other shells), called “globbing”. This is not done by run though, see e.g. here Quoting in shell commands and the related discussions, e.g. here Removing directory contents recursively.

Probably the easiest way around it is to explicitly run the command in a shell, e.g. with bash -c '...'

cmd = `bash -c 'fossil add harold/tiddlers/*'`
run(cmd)

This should then have the complete expected behavior of the shell you’re running it in (if it’s Bash). The downside is that you rely on Bash being installed on the system, but if not, it can be easily adapted.