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