[carton] 281/472: use Path::Tiny. Also saves temp index in ./local not .carton

Lucas Kanashiro kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:38:55 UTC 2015


This is an automated email from the git hooks/post-receive script.

kanashiro-guest pushed a commit to branch master
in repository carton.

commit 4f2c96349830511e2f5dcf99e24ff7da0a4e6177
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date:   Wed Jun 5 14:44:59 2013 +0900

    use Path::Tiny. Also saves temp index in ./local not .carton
---
 cpanfile              |  1 +
 lib/Carton/Builder.pm | 13 +++++--------
 lib/Carton/CLI.pm     | 28 +++++++++++-----------------
 xt/CLI.pm             | 29 +++++++++--------------------
 4 files changed, 26 insertions(+), 45 deletions(-)

diff --git a/cpanfile b/cpanfile
index b2627ea..670dcb1 100644
--- a/cpanfile
+++ b/cpanfile
@@ -14,6 +14,7 @@ requires 'local::lib', 1.008;
 requires 'Exception::Class', 1.32;
 requires 'Getopt::Long', 2.39;
 requires 'Moo', '1.002';
+requires 'Path::Tiny', '0.022';
 
 # MYMETA support
 requires 'App::cpanminus', 1.6915;
diff --git a/lib/Carton/Builder.pm b/lib/Carton/Builder.pm
index 1edaf29..0157da1 100644
--- a/lib/Carton/Builder.pm
+++ b/lib/Carton/Builder.pm
@@ -1,8 +1,5 @@
 package Carton::Builder;
 use strict;
-use File::Path ();
-use File::Basename ();
-use File::Copy ();
 use Moo;
 
 has mirror  => (is => 'rw');
@@ -31,13 +28,13 @@ sub bundle {
     my($self, $path, $cache_path, $lock) = @_;
 
     for my $dist ($lock->distributions) {
-        my $source = "$path/cache/authors/id/" . $dist->pathname;
-        my $target = "$cache_path/authors/id/" . $dist->pathname;
+        my $source = $path->child("cache/authors/id/" . $dist->pathname);
+        my $target = $cache_path->child("authors/id/" . $dist->pathname);
 
-        if (-f $source) {
+        if ($source->exists) {
             warn "Copying ", $dist->pathname, "\n";
-            File::Path::mkpath([ File::Basename::dirname($target) ], 0, 0777);
-            File::Copy::copy($source, $target) or warn "$target: $!";
+            $target->parent->mkpath;
+            $source->copy($target) or warn "$target: $!";
         } else {
             warn "Couldn't find @{[ $dist->pathname ]}\n";
         }
diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 3205597..3d84fe8 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -13,6 +13,7 @@ use Carton::Lock;
 use Carton::Util;
 use Carton::Error;
 use Carton::Requirements;
+use Path::Tiny;
 use Try::Tiny;
 use Moo;
 
@@ -24,34 +25,32 @@ our $UseSystem = 0; # 1 for unit testing
 
 has verbose => (is => 'rw');
 has carton  => (is => 'lazy');
-has workdir => (is => 'lazy');
 has mirror  => (is => 'rw', builder => 1,
                 coerce => sub { Carton::Mirror->new($_[0]) });
 
-sub _build_workdir {
-    my $self = shift;
-    $ENV{PERL_CARTON_HOME} || (Cwd::cwd() . "/.carton");
-}
-
 sub _build_mirror {
     my $self = shift;
     $ENV{PERL_CARTON_MIRROR} || $Carton::Mirror::DefaultMirror;
 }
 
 sub install_path {
-    $ENV{PERL_CARTON_PATH} || File::Spec->rel2abs('local');
+    Path::Tiny->new($ENV{PERL_CARTON_PATH} || 'local')->absolute;
+}
+
+sub work_file {
+    my($self, $file) = @_;
+    my $wf = $self->install_path->child($file);
+    $wf->parent->mkpath;
+    $wf;
 }
 
 sub vendor_cache {
-    File::Spec->rel2abs("vendor/cache");
+    Path::Tiny->new("vendor/cache")->absolute;
 }
 
 sub run {
     my($self, @args) = @_;
 
-    my $dir = $self->workdir;
-    mkdir $dir, 0777 unless -e $dir;
-
     my @commands;
     my $p = Getopt::Long::Parser->new(
         config => [ "no_ignore_case", "pass_through" ],
@@ -343,14 +342,9 @@ sub lock_file {
     return 'carton.lock';
 }
 
-sub work_file {
-    my($self, $file) = @_;
-    return join "/", $self->workdir, $file;
-}
-
 sub index_file {
     my $self = shift;
-    $self->work_file("02packages.details.txt");
+    $self->work_file("cache/modules/02packages.details.txt");
 }
 
 1;
diff --git a/xt/CLI.pm b/xt/CLI.pm
index 62ab801..ad64001 100644
--- a/xt/CLI.pm
+++ b/xt/CLI.pm
@@ -6,32 +6,21 @@ our @EXPORT = qw(run cli);
 use Test::Requires qw( Directory::Scratch Capture::Tiny File::pushd );
 
 sub cli {
-    my $dir = Directory::Scratch->new(CLEANUP => !$ENV{NO_CLEANUP});
-    Carton::CLI::Tested->new(dir => $dir);
+    my $cli = Carton::CLI::Tested->new;
+    $cli->dir( Directory::Scratch->new(CLEANUP => !$ENV{NO_CLEANUP}) );
+    $cli;
 }
 
 package Carton::CLI::Tested;
-use parent qw(Carton::CLI);
-
-$Carton::CLI::UseSystem = 1;
-
 use Capture::Tiny qw(capture);
 use File::pushd ();
-use File::Path ();
-
-sub new {
-    my($class, %args) = @_;
-
-    my $self = $class->SUPER::new;
-    $self->{dir} = $args{dir};
+use Path::Tiny;
+use Moo;
 
-    return $self;
-}
+extends 'Carton::CLI';
+$Carton::CLI::UseSystem = 1;
 
-sub dir {
-    my $self = shift;
-    $self->{dir};
-}
+has dir => (is => 'rw');
 
 sub print {
     my $self = shift;
@@ -64,7 +53,7 @@ sub system_error {
 
 sub clean_local {
     my $self = shift;
-    File::Path::rmtree("$self->{dir}/local", 1);
+    Path::Tiny->new("$self->{dir}/local")->remove_tree({ safe => 0 });
 }
 
 1;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git



More information about the Pkg-perl-cvs-commits mailing list