On 2015-5-28 22:44 , Artur Szostak wrote:
> Hi,
>
> Given a Portfile, I am trying to programmatically find all of its direct
> dependencies. My approach is to execute an appropriate TcL script in
> port-tclsh to produce a listing of such dependencies. I am able to handle
> Portfiles with the example script indicated below, but only for Portfiles
> that do not have any subports. It is not clear to me how to handle
> dependencies for subports. The structure returned by mportinfo seems to only
> have a list of subport names, not their dependencies.
> _______________________________________________________
> package require macports
> mportinit
> set mport [mportopen "file:///tmp/testport" [list] [list]]
> array unset portinfo
> array set portinfo [mportinfo $mport]
> mportclose $mport
> array set depsdict {depends_build build depends_lib lib depends_run run}
> foreach deptype [array names depsdict] {
> if {[info exists portinfo($deptype)] && \
> [string length $portinfo($deptype)] > 0} \
> {
> foreach dependency $portinfo($deptype) {
> puts "$depsdict($deptype) $dependency"
> }
> }
> }
> _______________________________________________________
>
> How can I access the dependencies for the subports?
<https://trac.macports.org/browser/trunk/base/src/port/port.tcl#L2935>
If you must find the list of subports that exist directly from the
Portfile (rather than use the index), you need to first open it under
the top-level name and look at $portinfo(subports).
- Josh
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev