---
name: "Git::Annex::BatchCommand"
section: "3pm"
platform: "linux"
package: "libgit-annex-perl"
version: "0.008-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Git::Annex::BatchCommand"
---

# Git::Annex::BatchCommand(3pm)

Perl interface to git-annex --batch commands

## NAME

Git::Annex::BatchCommand - Perl interface to git-annex --batch commands

## VERSION

version 0.008

## SYNOPSIS

```
  # you should not instantiate this class yourself; use Git::Annex::batch
  my $annex = Git::Annex->new("/home/spwhitton/annex");
  my $batch = $annex->batch("find", "--not", "--in=here");
  # see git-annex-find(1) -- `git annex find --batch --not --in here`
  # prints an empty string for each file which is not present
  say "foo/bar is not present in this repo" unless $batch->ask("foo/bar");
```

## DESCRIPTION

This class can be used to run git-annex commands which take the `"--batch"` option.  You can feed the command lines of input and you will get back git-annex's responses.

The main point of using `"--batch"` commands from Perl is to keep git-annex running rather than repeatedly executing new git-annex processes to perform queries or request changes.

## METHODS

### new($annex, $cmd, @args)

Initialise a batch process in Git::Annex `$annex`, running git-annex subcommand `$cmd` (e.g. `"setpresentkey"`) with arguments `@args`.

You should use Git::Annex::batch in preference to this method.

### say($input, ...)

Say a line or lines of input to the batch command's standard input. Trailing line breaks in `$input` are optional.

In list context, returns a list of git-annex's responses to the items of input, chomped.  In scalar context, returns the last of git-annex's responses, chomped.

### ask($input, ...)

Synonym for `"say"` method.

### restart

Kill and restart the `"--batch"` command.

This is sometimes needed to ensure the `"--batch"` command picks up changes made to the git-annex branch.

## AUTHOR

Sean Whitton \<spwhitton@spwhitton.name\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2019-2021 by Sean Whitton \<spwhitton@spwhitton.name\>.

This is free software, licensed under:

```
  The GNU General Public License, Version 3, June 2007
```
