The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.