On Monday October 26 2015 16:22:51 Ryan Schmidt wrote:
> A port might do things in its pre-configure or pre-build phases that work on
> the files in the work directory. For example, it might copy a file, or
> compile a file. These operations would fail if you're just trying to get info
> about the port, because the work directory wouldn't exist.
True.
Then again, the variables that are currently exported for use with --info can
also be modified in a pre- phase. A catch-22, it seems :)
> Look at the following procedures in src/port1.0/portutil.tcl:
>
> handle_option
> handle_option-append
> handle_option-prepend
> handle_option-delete
> handle_option-strsed
> handle_option-replace
I'd have found those myself, promised :)
That same file also defines the options_export procedure, so I now have a rough
working prototype that calls `options_export $option` in the procedures cited
above. With the code copied below in action_info in bin/port, I can now query
any predefined variable set or modified through those procedures:
} elseif {$opt eq "var"} {
if {[info exists global_options(ports_info_var)]} {
set opt ${global_options(ports_info_var)}
set ropt $opt
if {[info exists portinfo($opt)]} {
set inf "$portinfo($opt)"
} else {
ui_error "variable \"$opt\" cannot be queried via info
--var"
return 1
}
} else {
ui_error "info --var requires a variable name"
return 1
}
}
As to changes made to the configure arguments in a pre-configure phase: I've
already mentioned once before that I'd find it useful if the exact configure
command were dumped to a dedicated file in `port work` rather than only in
`port logfile`.
Cheers,
R.
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev