Date: Mon, 19 Nov 2012 15:18:52 -0600 (CST) From: Robert Bonomi <bonomi@mail.r-bonomi.com> To: freebsd-questions@freebsd.org Subject: Re: portsnap Message-ID: <201211192118.qAJLIqTi083328@mail.r-bonomi.com> In-Reply-To: <loom.20121119T205151-593@post.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> From owner-freebsd-questions@freebsd.org Mon Nov 19 14:15:23 2012 > To: freebsd-questions@freebsd.org > From: jb <jb.1234abcd@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211192118.qAJLIqTi083328>