[M3devel] how to find cm3.cfg
Jay K
jay.krell at cornell.edu
Mon Aug 31 03:10:55 CEST 2009
how to find cm3.cfg
I propose, in this order:
- -config or --config switch (actually any number of dashes)
- $M3_CONFIG environment variable (however it is already spelled)
This is a preferably path to a specific file, not some directory to further probe.
I'll have to check the current implementation though. It might be
a directory containing cm3.cfg as well. Whatever it currently does is how it should likely stay.
- cm3.cfg next to executable, be it cm3.exe, cm3ide.exe, etc.
- possibly one other choice, if none of the above exist, and executable is not cm3/cm3.exe,
then search $PATH for cm3/cm3.exe and use cm3.cfg next to it
This includes NOT looking in:
- /etc
- current directory
- $PATH in general
One problem is, you can't really directly/easily even find the current executable in Posix.
I'll do more research on this.
It is easy in Win32 and I assume Mac.
Otherwise will probably fall back to:
I believe everyone's best effort here is looking at argv[0] and if that isn't a full or
current working directory relative path, search $PATH.
Any other search should be layerable upon this.
That is, cm3.cfg can include(/etc/cm3.cfg) or such.
One thing not accounted for here is a --target command line option.
Given the current layout and code, that doesn't work out well.
Specifically, using config/target wouldn't set INSTALL_ROOT correctly.
--target could set $TARGET and cm3.cfg could include config/target if
target is already set.
Or cm3 could set INSTALL_ROOT itself.
We could look for next-to-executable/target.cfg.
I think I'll punt on all this for now -- any accomodation of --target on command line.
I think this change should probably go in this release, given that there was another change
already that this undoes and given th bug I found regarding running by relative path (granted,
I should debug that before replacing the code).
Or, I guess, at the very least, remove the new probes and fix the bug I found.
I guess.
- Jay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090831/dd28dafe/attachment-0001.html>
More information about the M3devel
mailing list