I mentioned last post that I was thinking of going with “a config file of some sort.” Plans have formed to use INI format, and the parser is written. (Between the desires to be pure-perl all the way down and to keep embed size down, I didn’t find any pre-written parsers that suited me on CPAN.)
So, it’s probably going to end up something like this:
; we basically just use this for supervisord, no venv needed [python2] min_version = 2.7 with_virtualenv = 0 ; legacy app can’t handle `carton exec` [perl] with_carton = 0 [php] min_version=5.4 [main] install = "php perl python2" ; known to fedora-pack add_packages = "php5-fpm libmoose-perl" ; known to apt/yum
As a bonus, the sections organize the options so that languages can define their own options fully independently, without having to avoid naming conflicts in the CLI options.
fedora-pack will continue to install all the per-language options by default, since actually using them is best practice, as I understand things.