NAME

Git::Repository::Command - Command objects for running git

SYNOPSIS

use Git::Repository::Command;

# invoke an external git command, and return an object
$cmd = Git::Repository::Command->(@cmd);

# a Git::Repository object can provide more context
$cmd = Git::Repository::Command->( $r, @cmd );

# options can be passed as a hashref
$cmd = Git::Repository::Command->( $r, @cmd, \%option );

# $cmd is basically a hash
$cmd->{stdin};     # filehandle to the process' stdin (write)
$cmd->{stdout};    # filehandle to the process' stdout (read)
$cmd->{stderr};    # filehandle to the process' stdout (read)
$cmd->{pid};       # pid of the child process

# done!
$cmd->close();

# exit information
$cmd->{exit};      # exit status
$cmd->{signal};    # signal
$cmd->{core};      # core dumped? (boolean)

DESCRIPTION

Git::Repository::Command is a class that actually launches a git commands, allowing to interact with it through its STDIN, STDOUT and STDERR.

This module is meant to be invoked through Git::Repository.

METHODS

Git::Repository::Command supports the following methods:

new( @cmd )

Runs a git command with the parameters in @cmd.

If @cmd contains a Git::Repository object, it is used to provide context to the git command.

If @cmd contains a hash reference, it is taken as an option hash. The recognized keys are:

git

The actual git binary to run. By default, it is just git.

cwd

The current working directory in which the git command will be run.

env

A hashref containing key / values to add to the git command environment.

input

A string that is send to the git command standard input, which is then closed.

The hash returned by new() has the following keys:

$cmd->{stdin};     # filehandle to the process' stdin (write)
$cmd->{stdout};    # filehandle to the process' stdout (read)
$cmd->{stderr};    # filehandle to the process' stdout (read)
$cmd->{pid};       # pid of the child process

close()

Close all pipes to the child process, and collects exit status, etc.

This adds the following keys to the hash:

$cmd->{exit};      # exit status
$cmd->{signal};    # signal
$cmd->{core};      # core dumped? (boolean)

AUTHOR

Philippe Bruhat (BooK), <book at cpan.org>

COPYRIGHT

Copyright 2010 Philippe Bruhat (BooK), all rights reserved.

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.