Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jun 2008 21:39:55 -0700
From:      Steve Kargl <sgk@troutmask.apl.washington.edu>
To:        Alexey Dokuchaev <danfe@freebsd.org>
Cc:        Maxim Sobolev <sobomax@freebsd.org>, src-committers@freebsd.org, Florent Thoumie <flz@freebsd.org>, cvs-src@freebsd.org, cvs-all@freebsd.org, Coleman Kane <cokane@freebsd.org>
Subject:   Re: cvs commit: src/usr.sbin/pkg_install/add main.c pkg_add.1 src/usr.sbin/pkg_install/create main.c pkg_create.1 src/usr.sbin/pkg_install/delete main.c pkg_delete.1 src/usr.sbin/pkg_install/info main.c pkg_info.1 ...
Message-ID:  <20080604043955.GA38627@troutmask.apl.washington.edu>
In-Reply-To: <20080604041815.GA84027@FreeBSD.org>
References:  <200805301426.m4UEQ92d025434@repoman.freebsd.org> <48405C4B.3050603@FreeBSD.org> <1212179252.1967.1.camel@localhost> <a01628140806030818te29e2fet287d59f5ceedfc9c@mail.gmail.com> <20080604041815.GA84027@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 04, 2008 at 04:18:15AM +0000, Alexey Dokuchaev wrote:
> On Tue, Jun 03, 2008 at 04:18:23PM +0100, Florent Thoumie wrote:
> > On Fri, May 30, 2008 at 9:27 PM, Coleman Kane <cokane@freebsd.org> wrote:
> > > On Fri, 2008-05-30 at 12:58 -0700, Maxim Sobolev wrote:
> > >> I am curious what is our policy on using long options in the base system
> > >> (if any)? I believe that pkg_install is the first non-contributed base
> > >> system utility to actually widely use it. For some reason I've got
> > >> impression that use of getopt_long is considered "the Linux/GNU way",
> > >> this API provided for compatibility purposes and its use in base system
> > >> is discouraged. Quick grep through /use/src seemingly supports that.
> > >>
> > >> Can someone confirm/reject?
> > >
> > > I am not sure about policy, however I do appreciate the long options
> > > sometimes. Primarily, I think they are useful (in a self-documenting
> > > way) for use in shell scripts. I tend to prefer the single-char options
> > > when I am doing the administration myself.
> > 
> > I'm not aware of such policy.
> > 
> > I think they're useful because as far as pkg_install is concerned, we
> > are using single-char options that are hard to match to the action
> > it's doing. Here are a couple examples:
> > 
> > - pkg_create -h doesn't call usage() because it's already taken.
> > - it's easy to confuse pkg_info -o and pkg_info -O.
> > 
> > I'll back it out if general consensus is that long options should be avoided.
> 
> I'd rather avoid long options in *BSD utilities.  They're hard to
> remember, easy to confuse, while not really gaining us anything useful
> (IMHO of course).
> 

I agree.  The argument that long options are self-documenting
in a script is rather weak.  If the command isn't obvious, then
script writer should actually put a comment in her code.  The
argument that -h is already taken and can't be used is also
weak, because one can always do 'man pkg_create'.

I personally believe that commit should be backed out and core
should establish a policy against adding long options to BSD
utilities.  Of course, my vote doesn't really matter in that
most of my attempted contributions to FreeBSD live in limbo.

-- 
Steve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080604043955.GA38627>