The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Alien::Base::ModuleBuild::Repository::Local;

use strict;
use warnings;

our $VERSION = '0.001';
$VERSION = eval $VERSION;

use Carp;
use File::chdir;
use File::Copy qw/copy/;
use File::Spec;

use parent 'Alien::Base::ModuleBuild::Repository';

sub new {
  my $class = shift;

  my $self = $class->SUPER::new(@_);

  # make location absolute
  local $CWD = $self->location;
  $self->location("$CWD");

  return $self;
}

sub list_files { 
  my $self = shift;

  local $CWD = $self->location;

  opendir( my $dh, $CWD);
  my @files = 
    grep { ! /^\./ }
    readdir $dh;

  return @files;
}

sub get_file  { 
  my $self = shift;
  my $file = shift || croak "Must specify file to copy";
  
  my $full_file = do {
    local $CWD = $self->location;
    croak "Cannot find file: $file" unless -e $file;
    File::Spec->rel2abs($file);
  };

  copy $full_file, $CWD;

  return 1;
}

1;