From: Ruediger Meier <sweet_f_a@gmx.de>
To: J William Piggott <elseifthen@gmx.com>
Cc: Karel Zak <kzak@redhat.com>, Sami Kerola <kerolasa@iki.fi>,
util-linux@vger.kernel.org
Subject: Re: [PATCH] uuidparse: add new command
Date: Mon, 19 Jun 2017 21:03:01 +0200 [thread overview]
Message-ID: <201706192103.01740.sweet_f_a@gmx.de> (raw)
In-Reply-To: <072f3a28-9fd9-dc68-adcf-d35081437d0c@gmx.com>
On Monday 19 June 2017, J William Piggott wrote:
> On 06/19/2017 05:55 AM, Ruediger Meier wrote:
> > On Monday 19 June 2017, Karel Zak wrote:
> >> On Mon, Jun 19, 2017 at 11:22:48AM +0200, Ruediger Meier wrote:
>
> -->8
>
> On a related note: could we add USAGE_*_NN with no trailing newline
> for use with puts() on new/converted commands? For example:
>
> #define USAGE_HEADER _("\nUsage:\n")
> #define USAGE_HEADER_NN _("\nUsage:")
My plan is to remove the trailing newline from USAGE_HEADER and friends
when no usage() funtion needs to use fputs() anymore.
> >>> BTW currently I'm going through the whole project to correct all
> >>> commands where we spam the whole usage in case of errors.
>
> I had that on my todo list, but I'll gladly let you handle it ;)
> Here are a few more to add to your list:
>
> grep -ErnI 'usage\(stderr' | sort
Yes it's a lot of work.
To get it done a bit faster I will just use generic "bad usage" messages
like this in delpart.
- if (argc != 3)
- usage(stderr);
+ if (argc != 3) {
+ warnx(_("bad usage"));
+ errtryhelp(EXIT_FAILURE);
+ }
This will generate followup-todos: grepping for "bad usage" to improve
error messages.
> disk-utils/addpart.c:53: usage(stderr);
> disk-utils/blockdev.c:229: usage(stderr);
> disk-utils/blockdev.c:271: usage(stderr);
> disk-utils/blockdev.c:318: usage(stderr);
> disk-utils/blockdev.c:335: usage(stderr);
> disk-utils/delpart.c:53: usage(stderr);
> disk-utils/fdformat.c:219: usage(stderr);
> disk-utils/fdisk.c:1003: usage(stderr);
> disk-utils/fdisk.c:855: usage(stderr);
> disk-utils/fdisk.c:884: usage(stderr);
> disk-utils/fdisk.c:932: usage(stderr);
> disk-utils/fdisk.c:989: usage(stderr);
> disk-utils/fsck.c:1539: usage(stderr);
> disk-utils/fsck.c:1545: usage(stderr);
> disk-utils/fsck.minix.c:1339: usage(stderr);
> disk-utils/isosize.c:190: usage(stderr);
> disk-utils/mkfs.bfs.c:133: usage(stderr);
> disk-utils/mkfs.bfs.c:180: usage(stderr);
> disk-utils/mkfs.bfs.c:195: usage(stderr);
> disk-utils/mkfs.c:118: usage(stderr);
> disk-utils/mkfs.minix.c:809: usage(stderr);
> disk-utils/mkswap.c:415: usage(stderr);
> disk-utils/mkswap.c:431: usage(stderr);
> disk-utils/partx.c:968: usage(stderr);
> disk-utils/resizepart.c:95: usage(stderr);
> disk-utils/swaplabel.c:176: usage(stderr);
> libsmartcols/samples/fromfile.c:303: usage(stderr);
> libsmartcols/samples/tree.c:220: usage(stderr);
> login-utils/chfn.c:193: usage(stderr);
> login-utils/chsh.c:239: usage(stderr);
> login-utils/chsh.c:249: usage(stderr);
> login-utils/sulogin.c:878: usage(stderr);
> misc-utils/cal.c:473: usage(stderr);
> misc-utils/look.c:146: usage(stderr);
> misc-utils/rename.c:201: usage(stderr);
> misc-utils/test_uuidd.c:291: usage(stderr);
> misc-utils/whereis.c:506: usage(stderr);
> misc-utils/whereis.c:551: usage(stderr);
> misc-utils/whereis.c:560: usage(stderr);
> misc-utils/whereis.c:569: usage(stderr);
> misc-utils/whereis.c:609: usage(stderr);
> misc-utils/wipefs.c:556: usage(stderr);
> schedutils/ionice.c:262: usage(stderr);
> schedutils/taskset.c:188: usage(stderr);
> sys-utils/blkdiscard.c:177: usage(stderr);
> sys-utils/chcpu.c:341: usage(stderr);
> sys-utils/chmem.c:317: chmem_usage(stderr);
> sys-utils/dmesg.c:1390: usage(stderr);
> sys-utils/fsfreeze.c:112: usage(stderr);
> sys-utils/fstrim.c:335: usage(stderr);
> sys-utils/ipcmk.c:135: usage(stderr);
> sys-utils/ipcrm.c:161: usage(stderr);
> sys-utils/losetup.c:863: usage(stderr);
> sys-utils/lscpu.c:2178: usage(stderr);
> sys-utils/lsipc.c:1231: usage(stderr);
> sys-utils/lsmem.c:498: lsmem_usage(stderr);
> sys-utils/mount.c:694: usage(stderr);
> sys-utils/mount.c:705: usage(stderr);
> sys-utils/mount.c:772: usage(stderr);
> sys-utils/mountpoint.c:181: usage(stderr);
> sys-utils/pivot_root.c:72: usage(stderr);
> sys-utils/renice.c:146: usage(stderr);
> sys-utils/renice.c:150: usage(stderr);
> sys-utils/rtcwake.c:501: usage(stderr);
> sys-utils/setsid.c:87: usage(stderr);
> sys-utils/swapoff.c:231: usage(stderr);
> sys-utils/swapon.c:984: usage(stderr);
> sys-utils/switch_root.c:241: usage(stderr);
> sys-utils/switch_root.c:248: usage(stderr);
> sys-utils/tunelp.c:148: print_usage(stderr);
> sys-utils/tunelp.c:246: print_usage(stderr);
> sys-utils/tunelp.c:262: print_usage(stderr);
> sys-utils/umount.c:524: usage(stderr);
> term-utils/agetty.c:790: usage(stderr);
> term-utils/agetty.c:798: usage(stderr);
> term-utils/agetty.c:807: usage(stderr);
> term-utils/mesg.c:162: usage(stderr);
> term-utils/setterm.c:1174: usage(stderr);
> term-utils/write.c:322: usage(stderr);
> tests/helpers/test_sigreceive.c:73: usage(stderr);
> text-utils/col.c:230: usage(stderr);
> text-utils/more.c:323: usage(stderr);
> text-utils/more.c:491: usage(stderr);
> text-utils/pg.c:259: usage(stderr);
> text-utils/pg.c:265: usage(stderr);
>
> >> That's legacy from time we used usage(stderr) for command line
> >> parsing errors. Now we use errtryhelp().
> >
> > Yes I know, but there are still a few commands where we could
> > correct --help, etc.
> >
> > FYI I've made a little script to find candidates to fix, see below.
> > I will send some patches.
> >
> > $ ./tools/check_help.sh
> > flock: --help, no stdout
> > flock: --help, non-empty stderr
> > getopt: --help, returns error
> > kill: --unknownopt, stderr too short: 1
> > mkfs.cramfs: --help, returns error
> > mkfs.cramfs: --version, returns error
> > whereis: --help, returns error
> > whereis: --version, returns error
> > whereis: --unknownopt, stderr too long: 18
> > agetty: --unknownopt, stderr too long: 45
> > blockdev: --unknownopt, stderr too long: 28
> > fsck: --help, returns error
> > fsck: --version, returns error
> > fsck: --unknownopt, non-empty stdout
> > fsck: --unknownopt, stderr too long: 18
> > login: --help, returns error
> > login: --version, returns error
> > login: --unknownopt, stderr too long: 4
> > lsipc: --unknownopt, stderr too long: 77
> > mkfs: --unknownopt, stderr too long: 8
> > more: --help, returns error
> > more: --version, returns error
> > more: --unknownopt, stderr too long: 21
> > nologin: --help, returns error
> > nologin: --version, returns error
> > pg: --unknownopt, stderr too long: 23
> > renice: --unknownopt, stderr too long: 18
> > rtcwake: --unknownopt, non-empty stdout
> > rtcwake: --unknownopt, stderr too long: 21
> > sulogin: --unknownopt, stderr too long: 17
> > write: --unknownopt, stderr too long: 12
> >
> > (There are also some false positives like nologin.)
> >
> > cu,
> > Rudi
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> > util-linux" in the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-06-19 19:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-18 17:25 [PATCH] uuidparse: add new command Sami Kerola
2017-06-19 8:41 ` Karel Zak
2017-06-20 19:43 ` Sami Kerola
2017-06-26 12:53 ` Karel Zak
2017-06-19 9:22 ` Ruediger Meier
2017-06-19 9:28 ` Karel Zak
2017-06-19 9:55 ` Ruediger Meier
2017-06-19 18:14 ` J William Piggott
2017-06-19 19:03 ` Ruediger Meier [this message]
2017-06-19 19:47 ` J William Piggott
2017-06-19 20:39 ` remove stderr usage (was: [PATCH] uuidparse) Rüdiger Meier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201706192103.01740.sweet_f_a@gmx.de \
--to=sweet_f_a@gmx.de \
--cc=elseifthen@gmx.com \
--cc=kerolasa@iki.fi \
--cc=kzak@redhat.com \
--cc=util-linux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.