Parsing an Ivy module descriptor (ivy.xml) for its dependencies from
a tool like CMake can be tough. This script takes a descriptor on the
standard input and prints its dependencies in an easily parsable format.
$ sudo pip install ivydepparse
$ ivydepparse < ivy.xml
...
<dependency org="com.ttgf" name="myGreatDep" rev="1.2.3" conf="debug;release"/>
<dependency org="com.ttgf" name="myGreatDep" rev="1.2.3" conf="other"/>
<dependency org="com.ttgf" name="myGreatDebugDep" rev="2.3.4" conf="debug"/>
...
results in
$ ivydepparse < ivy-example.xml org=com.ttgf|name=myGreatDebugDep|rev=2.3.4|conf=debug;org=com.ttgf|name=myGreatDep|rev=1.2.3|conf=debug,release,other
The output is a one-liner, a semicolon-separated list of dependencies.
Each dependency is a pipe-separated list of attributes as
name=value.
If any value contains one of our separators, they get escaped as follows:
;is replaced by,|is replaced by:=is replaced by:
For each dependency, all attributes are guaranteed to be present and in
that order: org, name, rev, conf.
Attributes can be empty. An empty attribute appears as name=.
Dependencies having the same key (org/name/rev) will be output as one single dependency.
The order inside conf in the output is not specified.
The order of the dependencies in the output is not specified.
1.0.1 (2015-09-30):
- Dependencies with same key are now aggregated.
1.0.0 (2015-09-30):
- Initial version.