Max OS X makes bundling multiple files together to form a single application very easy through their Application Bundle Structure. No need for a special reshacker or other special program. Just simple file manipulation.
VisualWorks can be deployed as an application by providing a resource.im in the Resources directory of an application bundle.
VisualWorks has the ability to deploy applications through what we call a "build up" approach to. A command line invocation such as:
visual base.im -pcl myApplication.pcl -doit "MyApplication open"
Once this has been put together, doing updates for your application are one click away. You just "publish as parcel" your Application package and replace the original with this new one.
Unfortunately, these two paradigms (the VisualWorks buildup from multiple files and the Apple Application Bundle) don't jive well together. The problem is that an Application Bundle, has no way to parameterize the execution of it's embedded executable.
So I sat down and wrote a two method package, called MacOSXApplicationCommandLine and placed it in the Public/Open Repository. Here's it's a package comment:
Adds the ability to read a commandline pattern for a deployed .app Application Bundle under OSX.
Usage
Place the command line string in a 'commandline' file next to your resource.im in the MyApplication.app/Contents/Resources/ directory. This code must be saved into the image, it cannot be loaded at startup time. With it loaded though, you can then place parcels and fileins in your Resources directory which can then be loaded via documented -pcl, -filein, -doit, etc. options.
Implementation
When OSX "launches" your app, the only thing that will show up in your 'CEnvironment commandLine' (which is used to invoke various CommandLineInterest options such as those listed above) is the VM and -psn_#_####### argument that is related to the process ID, or something like that. In the event this pattern is not matched, it simply reverts to the original implementation. It should be safe to use on any platform.
Hope this turns out useful for some.