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