Git::Class::Role::Clone - Git::Class::Role::Clone documentation


Git-Class documentation Contained in the Git-Class distribution.

Index


Code Index:

NAME

Top

Git::Class::Role::Clone

DESCRIPTION

Top

This is a role that does git clone .... See http://www.kernel.org/pub/software/scm/git-core/docs/git-clone.html for details.

METHOD

Top

clone

AUTHOR

Top

Kenichi Ishigaki, <ishigaki@cpan.org>

COPYRIGHT AND LICENSE

Top


Git-Class documentation Contained in the Git-Class distribution.

package Git::Class::Role::Clone;

use Any::Moose '::Role'; with 'Git::Class::Role::Execute';
requires 'git';

use Git::Class::Worktree;
use URI::Escape;

sub clone {
  my $self = shift;

  my ($options, @args) = $self->_get_options(@_);

  my ($out) = $self->git( clone => $options, @args );
  Carp::croak $self->_error if $self->_error;

  my $dir = $args[-1];
  if ($dir =~ m{([^/]+)/?\.git/?$}i) {
    $dir = uri_unescape($1);
  }
  $self->_error("work directory is not found") unless -d $dir;

  Git::Class::Worktree->new( path => $dir, cmd => $self );
}

1;

__END__