It might also be worth looking at the python "entry points" mechanism
as a source of inspiration. Here's a summary as I understand it:
The idea is to associate a script name (which will go in the path)
with a function inside your module. At install time, the python setup
system then generates a tiny thunk script with the given name and puts
it in the install path for the python environment. The thunk deals
with using the correct python interpreter path to import the correct
module and call the desired function.
This can be nice as any platform-specific annoyances regarding setting
up paths and other environment details can go into the autogenerated
script and the package author doesn't need to deal with them. It also
allows for a layer of renaming to abstract the details of what is
considered callable from the shell on different systems. Eg, a batch
script could be generated on windows (I don't know if this is what
actually happens), while on linux you'd want the executable flag set
and avoid a filename extension. It also avoids the need for a script
per entry point which might be a good or bad thing depending on your
point of view.
Downsides as I see them: 1) the install directory can't be trivially
copied to a different path - this can be bad if you want to package an
entire environment 2) Calling the entry points during package
development is different from after they've been installed, and this
is annoying.
Is there any documentation or code for the proposed Pkg3 design other
than the juliacon talk?