From owner-freebsd-current@FreeBSD.ORG Tue Aug 3 19:39:49 2010 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C685106566B for ; Tue, 3 Aug 2010 19:39:49 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 3BAC78FC0A for ; Tue, 3 Aug 2010 19:39:49 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id C98C746B09; Tue, 3 Aug 2010 15:39:48 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id DFED68A04E; Tue, 3 Aug 2010 15:39:47 -0400 (EDT) From: John Baldwin To: "Dag-Erling =?utf-8?q?Sm=C3=B8rgrav?=" Date: Tue, 3 Aug 2010 13:46:55 -0400 User-Agent: KMail/1.13.5 (FreeBSD/7.3-CBSD-20100217; KDE/4.4.5; amd64; ; ) References: <201006101346.59824.jhb@freebsd.org> <864oh4poxa.fsf@ds4.des.no> In-Reply-To: <864oh4poxa.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201008031346.56093.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 03 Aug 2010 15:39:47 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Garrett Cooper , current@freebsd.org Subject: Re: RFC: etcupdate tool in base? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Aug 2010 19:39:49 -0000 On Tuesday, June 15, 2010 6:31:45 am Dag-Erling Sm=C3=B8rgrav wrote: > Garrett Cooper writes: > > 1. Script doesn't check to see whether or not it has write access (and > > doesn't catch some errors): >=20 > IMHO, any shell script which is intended to be used more than twice > should start with "set -e". It turns out that this can be quite a PITA to workaround if you have comman= ds=20 that don't fail, but return "status". I use a shell function which uses $?= to=20 return an enum of the result of comparing two files. Using -e for that=20 requires many odd workarounds. A better case is diff(1). I use diff(1) to= =20 generate diff output for 'etcupdate diff' so you can generate a patch of yo= ur=20 local changes to etc. However, diff returns $? of 1 if it detects a=20 difference which is not a failure, but sh -e treats as a failure. This wou= ld=20 require gross hacks along the line of "|| true" or some such which obfuscat= e=20 the code. =2D-=20 John Baldwin