matchexpression: New plumbing command to check if a preferred content expression matches some data.

This commit is contained in:
Joey Hess 2016-01-25 16:16:18 -04:00
parent 4b569c9e7f
commit d3ba9fe5c8
Failed to extract signature
10 changed files with 186 additions and 11 deletions

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2016-01-25T20:15:05Z"
content="""
Implemented the matchexpression command.
time for x in $(seq 1 100); do git annex matchexpression "include=*.png and largerthan=100mb" --file=foo.png --size=10mb --debug; done
real 0m5.167s
user 0m2.688s
sys 0m1.860s
Don't know if that's fast enough or if it will need further optimisation
or a --batch option..
"""]]

View file

@ -0,0 +1,51 @@
# NAME
git-annex matchexpression - checks if a preferred content expression matches
# SYNOPSIS
git annex matchexpression `expression [data]`
# DESCRIPTION
This plumbing-level command is given a prefferred content expression,
and some data, and checks if the expression matches the data. It exits 0 if
it matches, and 1 if not. If not enough data was provided, it displays an
error and exits with special code 42.
For example, this will exit 0:
git annex matchexpression "include=*.png and largerthan=1mb" --file=foo.png --size=10mb
# OPTIONS
* `--file=`
Provide the filename to match against. Note that the file does not have
to actually exist on disk.
* `--size=`
Tell what the size of the file is. The size can be specified with any
commonly used units, for example, "0.5 gb" or "100 KiloBytes".
* `--key=`
Tell what key is being matched against. This is needed for
matching expressions like "copies=N" and "metadata=tag=foo" and
"present", which all need to look up the information on file for a key.
Many keys have a known size, and so --size is not needed when specifying
such a key.
# SEE ALSO
[[git-annex]](1)
[[git-annex-preferred-content]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.

View file

@ -535,6 +535,12 @@ subdirectories).
See [[git-annex-examinekey]](1) for details.
* `matchexpression`
Checks if a preferred content expression matches provided data.
See [[git-annex-matchexpression]](1) for details.
* `fromkey [key file]`
Manually set up a file in the git repository to link to a specified key.
@ -553,7 +559,6 @@ subdirectories).
See [[git-annex-setkey]](1) for details.
* `dropkey [key ...]`
Drops annexed content for specified keys.