Three defects in the 0.18.2 init.sh, found by review:
The two sed expressions could both fire on one line, so a line holding the key
twice was read as a value compose never sees. The export form now branches out
after it matches.
A value that is set but empty is no longer defaulted to ./data. Compose refuses
the project on one, so the reason is given here instead. An absent key still
takes the default.
The relative branch now reports an existing non-directory the way the absolute
branch does, instead of leaving only mkdir's error.
resolve_app_path now accepts an absolute APP_DATA_DIR_1 and keeps it, so an
upgrade finds the data where the installation already keeps it. 0.16.1 refused
every absolute value and stopped the upgrade before startup. Cleaning of . and
.. is textual, as the daemon's is, so realpath is no longer needed. Values the
compose file would read differently are refused, and a relative value now has
to begin with a dot. Listing numbers come from the 0.18.2 source: 27 drivers
reaching 54 named engines, 10 of the 27 sending only read requests.
Details, measurements and the adapter result are in the pull request.