pre-commit-annex hook script to automatically extract metadata from lots of types of files

Using the extract(1) program to do the heavy lifting.

Decided to make git-annex run pre-commit-annex when committing. Since
git-annex pre-commit also runs it, it'll be run when git commit is run too,
via the pre-commit hook. This basically gives back the pre-commit hook
that git-annex took away. The implementation avoids repeatedly looking
for the hook script when the assistant is running and committing
repeatedly; only checks if the hook is available once.

To make the script simpler, made git-annex metadata -s field?=value
only set a field when it's not already got a value.

This commit was sponsored by bak.
This commit is contained in:
Joey Hess 2014-03-02 18:01:07 -04:00
parent 34059c09e2
commit d0fce426c4
12 changed files with 152 additions and 16 deletions

View file

@ -56,14 +56,7 @@ once, and can be left alone when refining a view.
When annex.genmetadata is set, git annex add automatically attaches
some metadata to a file. Currently year and month fields, from its mtime.
TODO A git hook could be run by git annex add to gather more metadata.
For example, by examining file permisions or MP3 metadata.
Alternatively, this could be a
regular post-commit hook, that examines the files committed, and runs git
annex metadata to add metadata. No extra git-annex support is needed
to do that!
However, in direct mode, or when using the assistant, git-annex does its
own committing, not using git commit, so bypassing the commit hooks.
There's also a post-commit-annex hook script.
## directory hierarchy metadata