port doesn't exit with proper return value

Joshua Root jmr at macports.org
Fri May 16 23:50:28 PDT 2008


Ryan Schmidt wrote:
> 
> On May 16, 2008, at 7:46 AM, Joshua Root wrote:
> 
>> Port's normal mode of operation is to run as many of the requested
>> commands as possible and not exit when a command fails. It does this by
>> suppressing the error status from the commands. This is certainly
>> incorrect when there's only one command run and it fails, but it's less
>> clear what should happen when some of the requested commands succeed.
>>
>> You can make the first failed command cause port to exit, with the
>> appropriate return code, by using the -x option on the command line.
>>
>> Related tickets:
>>
>> http://trac.macports.org/ticket/13918
>> http://trac.macports.org/ticket/14928
> 
> Seems like -x should be the default, or rather, that the -x option 
> should be removed, and port should always issue an error message and 
> stop with a nonzero exit status the moment something goes wrong. Why 
> would one not want that?

I think the idea is that if you run `port install foo bar baz` or `port 
upgrade outdated`, and one of the ports fails to install/upgrade, you 
probably want it to still do the others. This is certainly the case when 
the operation will take a long time and you want to be able to leave it 
unattended.

On reflection, there should probably always be a non-zero exit status 
when any command fails, but a failure shouldn't cause the batch to stop.

- Josh


More information about the macports-dev mailing list