[Kst] JavaScript from the command line.
Barth Netterfield
netterfield at astro.utoronto.ca
Sun Nov 27 04:09:17 CET 2005
Imagine we want, from the command line, to tell kst to load bolocheck.js, and
pass it the parameters <datafile>, <filterfile>, <first frame>, & <nframes>.
There are a few options on how to do this: (Just skip to #4 for what I think
is the best idea, if you don't want to read read my stream of conciousness
planning)
1) all unknown options are passed on to extentions to use however the
extentions want.
so: kst -J bolocheck.js --jdata data.dat -jfilter filter.dat --jf0 1121 --jN
20000
+ Max flexability: the extension can chose any naming scheme it wants
- We lose error checking on command line parameters
- nothing to garantee there there are no parameter collisions between kst and
various extensions
2) Specially blessed extensions (like javascript) get parameters added to kst,
which get passed onto the extension iff the extension is loaded, and ignored
otherwise
eg kst -J bolocheck.js --j1 data.dat -j2 filter.dat --j3 1121 --j4 20000
+ keep checking of command line parameters
+ no parameter collisons
- only blessed extensions can get parameters: third parties can't add
parameters for their extensions.
- extensions have no ability to run time set parameter names (hence --j1 etc)
3) Registered extensions get a single string parameter which gets passed onto
the extension unparsed. The extension must parse it.
eg kst --js "bolocheck.js -d data.dat -fd filter.dat -f0 1121 -N 20000"
+ keep checking of kst command line parameters
+ extension parameter name space is completely isolated
+ no chance for parameter clashes
? can extensions report parse errors of their parameters?
- only blessed extensions can get parameters: third parties can't add
parameters for their extensions.
- the "" bracketed parameter names seem kind of funny.
4) parameters starting with --E are stored as a string, like #3, for use by
extensions which decide they understand them.. (technically, we do this by
pre-parsing argv before passing it off to KCmdLineArgs)
eg: kst --Ejs "bolocheck.js -d data.dat -fd filter.dat -f0 1121 -N 20000"
+ keep checking of kst command line parameters
+ extension parameter name space is completely isolated
? can extensions report parse errors of their parameters?
+ third parties can't add parameters for their extensions.
- no promise that extensions won't introduce parameter name clashes between
themselves (but if they only chose to recognise special cases, this should be
OK)
- the "" bracketed parameter names seem kind of funny.
What do people think about option 4? Can anyone think of a better idea?
cbn
More information about the Kst
mailing list