At 04:43 PM 5/29/2005 -0700, Bob Ippolito wrote:
On May 29, 2005, at 3:46 PM, Phillip J. Eby wrote:
It might help if there were some kind of metadata for scripts, like to indicate whether something is a command-line utility, a graphical application, etc. Then distutils could tweak the file extension and/or build a custom launcher for it (like Fredrik Lundh's exemaker for Windows) as appropriate for the platform. That information could then be added to EGG-INFO and/or EGG-SCRIPTS, and used by EasyInstall to do script installation and uninstallation.
Couldn't you change build_scripts and install_scripts when using bdist_egg to instead put the script inside the egg somewhere, and the installer would put scripts in the usual places that simply require and then exec the real script?
That's more or less what I was proposing, except that I wouldn't use build_scripts or install_scripts, just pack the original source scripts into the egg, and then let the installer do its thing at the other end. That way, a cross-platform egg wouldn't have any platform-specific stuff baked into the scripts accidentally. It's not as if build_scripts or install_scripts do anything of consequence at the moment anyway; they just munge the #! line and copy the files (as of Python 2.3 anyway). My main thought is distinguishing console vs. GUI start scripts. I don't believe there's a Mac equivalent to '.pyw', for example. Also, at some point EasyInstall really could support adding desktop shortcuts (or Start menu entries or whatever you call them on a given platform) for applications bundled in eggs. Sort of an end-user py2exe/py2app thing. On the other hand, it does seem a little silly to use a command-line tool to install a graphical application. :) However, it probably makes sense to create platform-specific GUI wrappers around EasyInstall to do this sort of thing.