-
Notifications
You must be signed in to change notification settings - Fork 2
Package Extraction #1
Description
Grid normally operates on packages and there is (from a user standpoint) no distinction between a binary and a package. Grid will find the binary in the package and extract it before it runs it.
Pantheon is very different because there is no single binary and all package contents need to be available for start.
The current solution is to extend the setup routine. The plugin specifies an unpack property to indicate that the package contents need to be extracted which will happen directly after download.
We also end up with two potentially ambiguous locations for the package and the extracted package.
The main challenge however is now that many config default values are specified at "specification time" but are only available during runtime after a package was downloaded and after it was extracted.
I introduced a new "magic string" %PACKAGE_PATH% that will always point to the extracted package path of the latest selected version and will be expanded before fs operations.
They are not expanded in the UI to avoid an unnecessary long flag preview and field values in the settings tab. This has the potential to confuse users.
The next problem is that there we cannot rely on the internal structure of packages.
So in order to expand paths for multiple versions to:
...bin_pantheon/pantheon-1.2.2/pantheon-1.2.2/lib/*
...bin_pantheon/pantheon-1.2.3/pantheon-1.2.3/lib/*
we need to specify the path as glob like
%PACKAGE_PATH%/*/lib\\*
and escape the star at the end.
