examinekey: Added two new format variables: objectpath and objectpointer

This commit is contained in:
Joey Hess 2020-11-12 13:02:31 -04:00
parent c5141b469a
commit 12e32d1dee
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
4 changed files with 22 additions and 10 deletions

View file

@ -6,6 +6,7 @@ git-annex (8.20201104) UNRELEASED; urgency=medium
* Warn when adding a annex symlink or pointer file that uses a key that
is not known to the repository, to prevent confusion if the user has
copied it from some other repository.
* examinekey: Added two new format variables: objectpath and objectpointer
-- Joey Hess <id@joeyh.name> Mon, 09 Nov 2020 15:15:20 -0400

View file

@ -10,6 +10,7 @@ module Command.ExamineKey where
import Command
import qualified Utility.Format
import Command.Find (parseFormatOption, showFormatted, keyVars)
import Annex.Link
cmd :: Command
cmd = noCommit $ noMessages $ dontCheck repoExists $
@ -22,5 +23,10 @@ cmd = noCommit $ noMessages $ dontCheck repoExists $
run :: Maybe Utility.Format.Format -> SeekInput -> String -> Annex Bool
run format _ p = do
let k = fromMaybe (giveup "bad key") $ deserializeKey p
showFormatted format (serializeKey' k) (keyVars k)
objectpath <- calcRepo $ gitAnnexLocation k
let objectpointer = formatPointer k
showFormatted format (serializeKey' k) $
[ ("objectpath", fromRawFilePath objectpath)
, ("objectpointer", fromRawFilePath objectpointer)
] ++ keyVars k
return True

View file

@ -22,9 +22,13 @@ that can be determined purely by looking at the key.
use '${var;width}' ; to left-justify a variable, use '${var;-width}';
to escape unusual characters in a variable, use '${escaped_var}'
These variables are available for use in formats: key, backend,
bytesize, humansize, keyname, hashdirlower, hashdirmixed, mtime (for
the mtime field of a WORM key).
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).
Also, '\\n' is a newline, '\\000' is a NULL, etc.
@ -43,12 +47,6 @@ that can be determined purely by looking at the key.
Enable batch mode, in which a line containing a key is read from stdin,
the information about it is output to stdout, and repeat.
# EXAMPLES
The location where the content of a key is stored can be looked up by running:
git annex examinekey $KEY --format='.git/annex/objects/${hashdirmixed}${key}/${key}'
# SEE ALSO
[[git-annex]](1)

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="joey"
subject="""comment 3"""
date="2020-11-12T16:59:34Z"
content="""
Implemented examinekey ${objectpath} and ${objectpointer}.
"""]]