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, with keys / accessors
$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.
If the Git::Repository
object has its own option hash, it will be used to provide default values that can be overriden by the actual option hash passed to new()
.
If several option hashes are passed to new()
, only the first one will be used.
The Git::Repository::Command
object returned by new()
has a number of attributes defined (see below).
close()
Close all pipes to the child process, and collects exit status, etc. and defines a number of attributes (see below).
Accessors
The attributes of a Git::Repository::Command
object are also accessible through a number of accessors.
The object returned by new()
will have the following attributes defined:
- cmdline()
-
Return the command-line actually executed, as a list of strings.
- pid()
-
The PID of the underlying git command.
- stdin()
-
A filehandle opened in write mode to the child process' standard input.
- stdout()
-
A filehandle opened in read mode to the child process' standard output.
- stderr()
-
A filehandle opened in read mode to the child process' standard error output.
After the call to close()
, the following attributes will be defined:
- exit()
-
The exit status of the underlying git command.
- core()
-
A boolean value indicating if the command dumped core.
- signal()
-
The signal, if any, that killed the command.
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.