Try a few `babeltrace` commands and add the --run-args option. The output is the arguments that would be pass to the `babeltrace run` command. You'll find documentation for --key and --value in `babeltrace-run(1)`.
Phil On Tue, May 1, 2018 at 10:51 AM, Alexander Aring <ar...@mojatatu.com> wrote: > Hi, > > On Mon, Apr 30, 2018 at 07:11:30PM -0400, Philippe Proulx wrote: >> On Mon, Apr 30, 2018 at 5:31 PM, Alexander Aring <ar...@mojatatu.com> wrote: >> > Hi, >> > >> > my use-case is just... we have several application with the same metadata >> > file. Currently I build a wrapper around babeltrace to run something like: >> > >> > find $(TRACE_DIR}/* -maxdepth 1 -type d -exec cp >> > ${PATH_TO_MY_APP_DATA}/ctf/metadata '{}' \; >> > >> > which is terrible... so I try this here somehow. >> > As you see it has no support for fs-query and I didn't figured out yet >> > for what fs-query is for. >> > >> > Also I was struggle some hours how to tell popt the right argument string, >> > it need to be: >> > >> > --metadata-src=\"/usr/share/$APP_DIR/ctf\" >> > >> > with the ugly escape things... I saw there is a complex INI parser system >> > behind (never saw such complex option parser in an open source project). >> >> A note about this: there are two ways to add component initialization >> parameters with `babeltrace run`: with >> >> --params 'key1="the value", key2=23, key3=simple_string' >> >> and, for string parameters, with: >> >> --key key1 --value 'the value' >> >> The --params option parses what you call a "complex INI" format. It's >> not so complex in reality and well-explained in the man page. > > When I have a string I need to use --key key1 --value 'the value' > otherwise key/value pairs? > > I remember I saw the key value args somewhere... it seeems not be part > of babeltrace convert. I tried --params, and as the manpage said [0]: > > Important > Like in the example above, make sure to single-quote the whole > argument when you run this command from a shell. > > This did libpopt to parse something, but still get some "cannot create > components" error. I need to debug this more to figure out the "why". > So put everything in single quotes are important... yes this will tell > the shell to handle it as a full arg, I agree. And also there is a big > IMPORTANT in --help. :-) > > I saw that source.ctf.fs had it's own implicit argument "--clock-offset" > which seemed to work for me and I tried the same with --metadata-src. > Seems to be a shortcut for --key key1 --value 'the value'. > > According to the key value arg options: > > It's somewhat misleading that you have args (--FOO) which need to be in a > special order e.g. --key and then --value (where value is a must after key). > Does libpopt have such feature? Anyway I would use --params always as it > accept key/value pairs as optarg. > >> >> The job of `babeltrace convert` (the default command) is only to create >> a valid `babeltrace run` command line and run it. In your first patch, > > I see that's why I see something when I just type my command. Then > source and sink will be connected by a magic way? > >> you use append_implicit_component_param(): this one appends a key/value >> pair to the --params option's argument of a given implicit component. >> It's simply appending `,KEY=VAL` to the current INI-style parameter >> string for that component, which is why you need to pass the double >> quotes above, because the effective string to append is exactly: >> >> ,metadata-src="/usr/share/app-dir-expansion/ctf" >> >> What you want to do is have this instead: >> >> --key metadata-src --value /usr/share/app-dir-expansion/ctf >> > > I am not sure how to pass these --key --value arguments. Manpage of > source.ctf.fs [0] doesn't say anything about these parameters. > >> (where `app-dir-expansion` is the expansion of $APP_DIR). You can use >> append_implicit_component_extra_param() for this. This is what we use >> for complex string values like for --begin, --end, --debug-info-dir, >> etc. Then you could use: >> >> --metadata-src="/usr/share/$APP_DIR/ctf" >> >> so that popt returns `/usr/share/app-dir-expansion/ctf`. >> > > When I implemented it and I try to run it. I get a confused parser error: > > Command line error: Expecting value: > > metadata-src=/foobar/ctf > > --- > > arg was: --metadata-src="/foobar/ctf" > > and maybe that's the reason why I don't like libpopt now. :-) > > It's actually means babeltrace can not have "implicit shortcut args" > e.g. "--clock-offset" with a string value (as popt string type)? > > Thanks for the answer and so fast...! :-) > > - Alex > > [0] http://man7.org/linux/man-pages/man1/babeltrace-convert.1.html _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev