add INPUT-REQUIRED

Used by git-annex-compute-singularity to make addcomputed --fast work.

Also, simplified git-annex-compute-singularity; there is no need to hard
link the container into place. singularity does not care about the
extension of the container, so can just pass it the annex object file.
This commit is contained in:
Joey Hess 2025-03-11 11:46:31 -04:00
parent bb0bc078fc
commit 0477a8d098
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
6 changed files with 83 additions and 66 deletions

View file

@ -73,12 +73,13 @@ If an input file is not available, the program's stdin will be closed
without a path being written to it. So when reading from stdin fails,
the program should exit.
When `git-annex addcomputed --fast` is being used to add a computation
to the git-annex repository without actually performing it, the
response to eaach `INPUT` will be an empty line rather than the path to
an input file. In that case, the program should proceed with the rest of
its output to stdout (eg `OUTPUT` and `REPRODUCIBLE`), but should not
perform any computation.
When `git-annex addcomputed --fast` is being used to add a computation to
the git-annex repository without actually performing it, the response to
each `INPUT` will be an empty line rather than the path to an input file.
This can also happen when an input file is not available for whatever
reason. In this case, the program should proceed with the rest of its
output to stdout (eg `OUTPUT` and `REPRODUCIBLE`), but should not perform
any computation.
## output files
@ -133,6 +134,16 @@ messages that the program can output. All of these are optional.
that is done by making hard links, but it will fall back to copying annexed
files if the filesystem does not support hard links.
* `INPUT-REQUIRED`
This works the same as `INPUT`, except when `git-annex addcomputed --fast`
is being used to add a computation to the git-annex repository without
actually performing it, the input file will be provided as a response
to this, rather than the empty line provided as a response to `INPUT`.
If the input file is not available for some reason, an empty line will
still be provided as a response to this.
## example
An example `git-annex-compute-foo` shell script follows: