flock: improve usage strings
The current examples miss the best usage of all: specifying the command and its arguments directly on the command line. Add that to both the program usage and the man page. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
f5664477cb
commit
295dd90226
|
@ -29,10 +29,10 @@
|
||||||
flock \- manage locks from shell scripts
|
flock \- manage locks from shell scripts
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B flock
|
.B flock
|
||||||
[options] <file> -c <command>
|
[options] <file|directory> <command> [command args]
|
||||||
.br
|
.br
|
||||||
.B flock
|
.B flock
|
||||||
[options] <directory> -c <command>
|
[options] <file|directory> -c <command>
|
||||||
.br
|
.br
|
||||||
.B flock
|
.B flock
|
||||||
[options] <file descriptor number>
|
[options] <file descriptor number>
|
||||||
|
@ -120,6 +120,9 @@ shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
|
||||||
Set shared lock to directory /tmp and the second command will not fail.
|
Set shared lock to directory /tmp and the second command will not fail.
|
||||||
Notice that attempting to get exclusive lock with second command would fail.
|
Notice that attempting to get exclusive lock with second command would fail.
|
||||||
.TP
|
.TP
|
||||||
|
shell> flock -x local-lock-file echo 'a b c'
|
||||||
|
Grab the exclusive lock "local-lock-file" before running echo with 'a b c'.
|
||||||
|
.TP
|
||||||
(
|
(
|
||||||
.TQ
|
.TQ
|
||||||
flock -n 9 || exit 1
|
flock -n 9 || exit 1
|
||||||
|
@ -138,6 +141,14 @@ allows the lockfile to be created if it does not already exist, however,
|
||||||
write permission is required. Using
|
write permission is required. Using
|
||||||
.I <
|
.I <
|
||||||
requires that the file already exists but only read permission is required.
|
requires that the file already exists but only read permission is required.
|
||||||
|
.TP
|
||||||
|
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
|
||||||
|
This is useful boilerplate code for shell scripts. Put it at the top of the
|
||||||
|
shell script you want to lock and it'll automatically lock itself on the first
|
||||||
|
run. If the env var $FLOCKER is not set to the shell script that is being run,
|
||||||
|
then execute flock and grab an exclusive non-blocking lock (using the script
|
||||||
|
itself as the lock file) before re-execing itself with the right arguments. It
|
||||||
|
also sets the FLOCKER env var to the right value so it doesn't run again.
|
||||||
.SH "EXIT STATUS"
|
.SH "EXIT STATUS"
|
||||||
The command uses
|
The command uses
|
||||||
.B sysexits.h
|
.B sysexits.h
|
||||||
|
|
|
@ -48,9 +48,9 @@ static void __attribute__((__noreturn__)) usage(int ex)
|
||||||
{
|
{
|
||||||
fprintf(stderr, USAGE_HEADER);
|
fprintf(stderr, USAGE_HEADER);
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
_(" %1$s [options] <file descriptor number>\n"
|
_(" %1$s [options] <file|directory> <command> [command args]\n"
|
||||||
" %1$s [options] <file> -c <command>\n"
|
" %1$s [options] <file|directory> -c <command>\n"
|
||||||
" %1$s [options] <directory> -c <command>\n"),
|
" %1$s [options] <file descriptor number>\n"),
|
||||||
program_invocation_short_name);
|
program_invocation_short_name);
|
||||||
fputs(USAGE_OPTIONS, stderr);
|
fputs(USAGE_OPTIONS, stderr);
|
||||||
fputs(_( " -s --shared get a shared lock\n"), stderr);
|
fputs(_( " -s --shared get a shared lock\n"), stderr);
|
||||||
|
|
Loading…
Reference in New Issue