summaryrefslogtreecommitdiff
path: root/metastore.md
diff options
context:
space:
mode:
authorAdam Spragg <adam@spra.gg>2022-06-28 17:37:18 +0100
committerAdam Spragg <adam@spra.gg>2022-06-29 15:29:41 +0100
commit58422d1a4a82ba48e045a9603bd5ee7916f6c922 (patch)
tree8eab0e1cb40b187c2eebfbe004be0bb7066c9164 /metastore.md
parentb46002f1c47d7716fc582269e3d943b87bbdcf9c (diff)
doc: Generate the man page from markdown
Because who wants to hand-write groff markup these days? This adds pandoc(1) as a build-dependency. It uses PHP Markdown Extra definition lists, which pandoc uses for e.g. command option/explanation lists. Because this definition list format is non-standard it might not render as intended on many markdown viewers, but pandoc generates "better" man page output with it.
Diffstat (limited to 'metastore.md')
-rw-r--r--metastore.md111
1 files changed, 111 insertions, 0 deletions
diff --git a/metastore.md b/metastore.md
new file mode 100644
index 0000000..2d2ba83
--- /dev/null
+++ b/metastore.md
@@ -0,0 +1,111 @@
+# metastore(1) January 2016 | General Commands Manual
+
+## NAME
+
+metastore - stores and restores filesystem metadata
+
+
+## SYNOPSIS
+
+**metastore** *ACTION* \[*OPTION...*\] \[*PATH...*\]
+
+
+## DESCRIPTION
+
+Stores or restores metadata (owner, group, permissions, xattrs and optionally
+mtime) for a filesystem tree. This can be used to preserve the metadata in
+situations where it is usually not stored ([git(1)](GIT) and [tar(1)](TAR) for
+example) or as a tripwire like mechanism to detect any changes to metadata.
+Note that e.g. SELinux stores its labels in xattrs so care should be taken when
+applying stored metadata to make sure that system security is not compromised.
+
+
+## ACTIONS
+
+**-c, \-\-compare**
+
+: Shows the difference between the stored and real metadata.
+
+**-s, \-\-save**
+
+: Saves the current metadata to `./.metadata` or to the specified file
+ (see `--file` option below).
+
+**-a, \-\-apply**
+
+: Attempts to apply the stored metadata to the file system.
+
+**-d, \-\-dump**
+
+: Dumps stored (if no *PATH* is given) or real metadata (if *PATH* is
+ present, e.g. `./`) in human-readable form.
+
+ This action is meant only as a helpful debugging facility or merge
+ conflict helper. Do not ever compare its output generated using
+ different metastore version. Do not rely on current output format
+ (especially in batch scripts), because it may change in future without
+ prior notice.
+
+**-h, \-\-help**
+
+: Prints a help message and exits.
+
+
+## OPTIONS
+
+**-v, \-\-verbose**
+
+: Causes metastore to print more verbose messages. Can be repeated more
+ than once for even more verbosity.
+
+**-q, \-\-quiet**
+
+: Causes metastore to print less verbose messages. Can be repeated more
+ than once for even less verbosity.
+
+**-m, \-\-mtime**
+
+: Causes metastore to also take mtime into account for the compare or
+ apply actions.
+
+**-e, \-\-empty-dirs**
+
+: Also attempts to recreate missing empty directories. May be useful where
+ empty directories are not tracked (e.g. by [git(1)](GIT) or
+ [cvs(1)](CVS)). Only works in combination with the `--apply` option.
+
+**-E, \-\-remove-empty-dirs**
+
+: Also attempts to remove empty directories missing from the metadata. May
+ be useful where empty directories are not tracked (e.g. by [git(1)](GIT)
+ or [cvs(1)](CVS)). Only works in combination with the `--apply` option.
+
+**-g, \-\-git**
+
+: Prevents metastore from omitting `.git` directories.
+
+**-f \<file\>, \-\-file \<file\>**
+
+: Causes the metadata to be saved, read from the specified file rather
+ than `./.metadata`.
+
+
+## PATHS
+
+If no path is specified, `metastore` will use the current directory as the basis
+for the actions. This is the recommended way of executing metastore.
+Alternatively, one or more paths can be specified and they will each be
+examined. Later invocations should be made using the exact same paths to ensure
+that the stored metadata is interpreted correctly.
+
+
+## AUTHORS
+
+`metastore` was created by David Härdeman in 2007-2008. Now it is maintained by
+Przemysław Pawełczyk. All source code contributors are listed in the `AUTHORS`
+file.
+
+
+[CVS]: man:cvs(1)
+[GIT]: man:git(1)
+[TAR]: man:tar(1)