I work on multiple releases of a big app, each of which support only certain CFML engine versions. The CommandBox/CFConfig combination makes it wonderfully easy to run the same code, dbs, settings, file system artifacts, etc, against different engines and versions. But of course I’d like to make it even easier for our people if I can…
Is there any way to provide a “menu” of supported engine/version combinations for CommandBox running in a given location in the file system?
In my case, source code for each release is in a separate dir on my machine. It’d be great to cd CommandBox to one of them, and somehow bring up a “menu” of, say, ACF2016, ACF11, ACF10, ACF9, Lucee4, Lucee5, etc, whichever engine releases that app release supports. Ideally that engines “menu” would be easily configurable for each app release.
I keep using “menu” in quotes because I don’t care a lot what format it’s in, as long as it’s clear to users (devs), and can somehow start an instance running the selected engine. It could be a popup in the tray menu, for instance, but I think that only appears when an engine instance is running. Right? It could be some kind of picker in the CommandBox cmd line interface, really anything clear and doable.
Is anything like that possible?
In a super ideal world, the menu could be generated on the fly by code that examines some files in the app I want to run that say which engine versions are supported. I’d need to check, but I think as of now that info is in code, not data, but could be accessed via CFML. Down the road, if having it as data (xml/json/etc) would be better, that could happen too.
Extracting the supported versions would be my problem. The question I’m asking here is, what sort of menu could be created, how, and could it be dynamic?
Thanks.