On 2022-03-25 20:56, John Douglas Owens via macports-dev wrote:
Would someone consider answering this on
https://github.com/pikepdf/pikepdf/issues/322
<https://github.com/pikepdf/pikepdf/issues/322> ? The proximate issue is
that pikepdf assumes Homebrew is installed and the install breaks on
MacPorts if Homebrew is not installed. The developer would like to fix this!
This is a good question. I am not enough of a MacPorts developer to be
sure of the answer, but I will take it as an interesting riddle.
My guess: if there is a command `port` on the current path, then
MacPorts is likely installed. `which port` prints the absolute path
to a `port command`:
% which port
/opt/local/bin/port
So have the program run `which port`.
• case exit code is not 0: MacPorts is not installed.
• case exit code is 0: stdout contains the absolute path to `port`
Then run that path with `version`.
Check that it runs without error, and that the output matches
'''^Version: \d+\.\d+\.\d+$```. Though this check will be fragile if
MacPorts changes its version output.
The dirname of the dirname of the path returned by `which port` is
likely to be the prefix which MacPorts is installed. Thus append `/lib`
and `/include` to that prefix to get the MacPorts lib and include paths.
Is this reasonable, or is it a bad choice for reasons I don't yet know
about?
Best regards,
--Jim DeLaHunt