ref: 29b0958c9eb1071fa23be1516e3b5a6001a014f5
parent: 85635f91726fe61e464d78a787955a99df9eb5ae
author: kvik <kvik@a-b.xyz>
date: Mon Feb 17 09:58:15 EST 2020
Rework the manual page
--- a/unionfs.man
+++ b/unionfs.man
@@ -4,10 +4,8 @@
.SH SYNOPSIS
.B unionfs
[
-.B -D
+.B -abiC
] [
-.B -abC
-] [
.B -M
|
.B -m
@@ -15,60 +13,89 @@
] [
.B -s
.I srvname
-] [ [
+] [
.B -c
]
.I path ....
-]
.SH DESCRIPTION
.PP
.I Unionfs
-serves a file tree that represents a deep
-merge of the file trees given by one or
-more of the
+serves a file tree representing a deep
+merge of the trees given by the
.I path
-arguments - unlike the namespace
-operators described in
-.IR bind (2),
-which merge directory contents on
-a single level.
+arguments - this is unlike the standard set of
+namespace operators which merge only at the
+mountpoint level.
.PP
-If the
-.I -c
-flag is prefixed to a
+A
.I path
-it will be marked as a target for file
-creation; otherwise the first path in the
-list will be used.
+tree marked with the create flag
+.I -c
+is used as the destination for newly created
+files; the first path in the list is used by default.
+The path leading up to the new file or a directory
+will be created if necessary.
.PP
The command line options are:
-.TF "-s srvname"
+.TF ".............."
.TP
-.B -D
-Enable 9P trace output.
+.B -a, -b, -C
+Mount flags, see
+.IR bind (1).
.TP
-.BI -s \ srvname
-Post channel on
-.RI /srv/ srvname .
+.BI -c \ path
+Mark a
+.I path
+as the create destination.
.TP
+.B -i
+Talk on standard input / output.
+.TP
.BI -m \ mtpt
-Set mountpoint
-.RI ( /mnt/union
-by default,
+Mount on
+.IR mtpt ;
+.I /mnt/union
+by default.
.I -M
-prevents it)
+disables automatic mounting.
.TP
-.B -a, -b, -C
-Work as described in
-.IR bind (1).
+.BI -s \ srvname
+Post channel to
+.RI /srv/ srvname .
+.TP
+.B -D
+9P debug trace.
.PD
.SH EXAMPLES
+Construct the
+.I /bin
+tree:
+.PP
.EX
-% unionfs -m /bin /rc/bin /arm/bin -c $home/bin/^(rc arm)
+; unionfs -m /bin \\
+ $home/bin/$objtype $home/bin/rc \\
+ /rc/bin /$objtype/bin
.EE
+.PP
+Compile the system, redirecting all the build
+artifacts to a
+.IR ramfs (4):
+.PP
+.EX
+; ramfs
+; bind /sys/src /mnt/src
+; unionfs -m /sys/src /tmp /mnt/src
+; @{cd /sys/src; mk install}
+.EE
+.PP
+The temporary bind is necessary for
+avoiding a cycle caused by unioned tree
+.I /sys/src
+being the same as the mountpoint.
.SH SEE ALSO
.IR bind (1),
-.IR bind (2)
+.IR bind (2),
+.IR ramfs (4)
.SH SOURCE
.B git://code.a-b.xyz/unionfs
.SH BUGS