git-annex/doc/git-annex-examinekey.mdwn
Joey Hess a325524454
--json-exceptions
Added a --json-exceptions option, which makes some exceptions be output in json.

The distinction is that --json-error-messages is for messages relating
to a particular ActionItem, while --json-exceptions is for messages that
are not, eg ones for a file that does not exist.

It's unfortunate that we need two switches with such a fine distinction
between them, but I'm worried about maintaining backwards compatability
in the json output, to avoid breaking anything that parses it, and this was
the way to make sure I didn't.

toplevelWarning is generally used for the latter kind of message. And
the other calls to toplevelWarning could be converted to showException. The
only possible gotcha is that if toplevelWarning is ever called after
starting acting on a file, it will add to the --json-error-messages of the
json displayed for that file and converting to showException would be a
behavior change. That seems unlikely, but I didn't convery everything to
avoid needing to satisfy myself it was not a concern.

Sponsored-by: Dartmouth College's Datalad project
2023-04-25 17:05:33 -04:00

97 lines
2.9 KiB
Markdown

# NAME
git-annex examinekey - prints information from a key
# SYNOPSIS
git annex examinekey `[key ...]`
# DESCRIPTION
This plumbing-level command is given a key, and prints information
that can be determined purely by looking at the key.
# OPTIONS
* `--format=value`
Use custom output formatting.
The value is a format string, in which '${var}' is expanded to the
value of a variable. To right-justify a variable with whitespace,
use '${var;width}' ; to left-justify a variable, use '${var;-width}';
to escape unusual characters (including control characters)
in a variable, use '${escaped_var}'
To generate a path from the top of the repository to the git-annex
object for a key, use ${objectpath}. To generate the value of a
git-annex pointer file for a key, use ${objectpointer}.
These variables are also available for use in formats: ${key}, ${backend},
${bytesize}, ${humansize}, ${keyname}, ${hashdirlower}, ${hashdirmixed},
${mtime} (for the mtime field of a WORM key), ${file} (when a filename is
provided to examinekey).
Also, '\\n' is a newline, '\\000' is a NULL, etc.
The default output format is the same as `--format='${escapedkey}\\n'`
when outputting to the terminal, and otherwise `--format='${key}\\n'`
* `--json`
Enable JSON output. This is intended to be parsed by programs that use
git-annex. Each line of output is a JSON object corresponding to a key
being processed.
* `--json-error-messages`
Adds an "error-messages" field to the JSON that contains messages that
would normally be output to the standard error when processing a key.
* `--json-exceptions`
Output additional JSON objects for some exceptions that are not
associated with a particular key.
* `--migrate-to-backend=backend`
Attempt to migrate the input key to the new backend specified. If
successful, outputs information about the migrated key. Otherwise,
outputs information about the input key.
This only does fast migrations; it will not re-hash the content of a key
or similar expensive operation.
One way to use it is to add an extension to a key.
git-annex examinekey SHA256--xxx --migrate-to-backend=SHA256E --filename=foo.tar.gz
Or to remove the extension from a key:
git-annex examinekey SHA256E-xxx.tar.gz --migrate-to-backend=SHA256
* `--filename=name`
The name of a file associated with the key, eg a work tree file.
It does not need to exist. This is needed when using `--migrate-to-backend`
to add an extension to the key.
* `--batch`
Enable batch mode, in which a line containing a key is read from stdin,
the information about it is output to stdout, and repeat.
In order to also provide the name of a file associated with the key, the
line can be in the format "$key $file"
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.