Background: What do we mean by “executable collection”?

Wrangling of executable collections refers to dealing with $PATH, essentially. We assume you’ve heard of it.

Goal

We want to populate the Warpsys ecosystem with things satisfy two major goals:

We also have another, purely practical, concern: we want setting up $PATH to be as fast and inexpensive as possible, when given a bunch of applications that are all in their own directories. (This describes the initial state of a container environment in warpforge, where a bunch of different wares have just been mounted, each in their own directory tree.)

What we do in the Warpsys ecosystem

Symlink farm, essentially. This is pretty well-trodden ground.

Suppose you have some applications, each of which was unpacked into its own directory:

apps/foo-v1-bafy4hg5kjt/bin/foo
apps/foo-v1-bafy4hg5kjt/lib/thingy.so
apps/bromeliad-v2-bafyhgt544uywt/bin/bromeliad
apps/bromeliad-v2-bafyhgt544uywt/lib/thangy.so

What we want is simple: construct a directory full of symlinks to the executables: