portsnap
Robert Bonomi
bonomi at mail.r-bonomi.com
Mon Nov 19 21:18:04 UTC 2012
> From owner-freebsd-questions at freebsd.org Mon Nov 19 14:15:23 2012
> To: freebsd-questions at freebsd.org
> From: jb <jb.1234abcd at gmail.com>
> Subject: Re: portsnap
> Date: Mon, 19 Nov 2012 20:13:45 +0000 (UTC)
>
> RW <rwmaillists <at> googlemail.com> writes:
>
> >
> > On Mon, 19 Nov 2012 16:10:48 +0000 (UTC) jb wrote:
> >
> > > > You gave portsnap two commands - one succeeded and the other
> > > > failed.
>
> Nope. I gave ONE command: 'portsnap fetch update'.
FALSE TO FACT.
You invoked one executable, 'portsnap',
giving IT two commands, 'fetch' and 'update' as parameters.
Which is *EXACTlY* the same as if you had invoked that
executable twice, giving it one command (in the order above)
on each invocation.
The 'fetch' command succeeded.
The 'update' command failed.
>
> > > But this looks like a flaky entry validation - it should be rejected
> > > up front as invalid entry, even if it applied to the second part -
> > > "update". Because the effect of processing the entire entry "fetch"
> > > plus "update" is lost anyway.
> >
> > Not isn't, you've brought the snapshot up to date.
>
> Well, yes. But as I already explained, there was ONE command.
You misunderstood the terminology -- you gave *TWO* commmands _to_the_
_portsnap_program_.
when portsnap is given multiple commands as invocation arguments,
it processes them sequentially, retuning an 'exit status' for the
first command that _fails, or 'success' if none of the commands
failed.
> If I wanted to be satisfied with two command outcomes, even if logically
> linked by sequential execution, then I would do:
> # portsnap fetch; portsnap update
>
> There is a subtle, but important difference.
Only in your expectations. <grin>
> In general, if I wanted to check for command completion code, which is
> quite common in UNIX CLI or scripting env, it would make a lot of
> difference if a command failed half way in both cases:
> 'portsnap fetch update; check-completion-code'
> and 'portsnap fetch; check-completion-code; portsnap update;
> check-completion-code'
'portsnap fetch update' is the EXACT equivalent of:
'portsnap fetch && portsnap update; `check-completion-code'`
Your: 'portsnap fetch; check-completion-code; portsnap update;
check-completion-code'
is bad/incorrect scripting since it _unconditionally_ executes
'portsnap update', which you do NOT want to do if/when 'fetch'
fails.
More information about the freebsd-questions
mailing list