Hello community, here is the log from the commit of package perl-File-ShareDir-Install for openSUSE:Factory checked in at 2014-02-28 19:00:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-File-ShareDir-Install (Old) and /work/SRC/openSUSE:Factory/.perl-File-ShareDir-Install.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-File-ShareDir-Install" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-File-ShareDir-Install/perl-File-ShareDir-Install.changes 2013-10-08 18:19:40.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-File-ShareDir-Install.new/perl-File-ShareDir-Install.changes 2014-02-28 19:00:59.000000000 +0100 @@ -1,0 +2,13 @@ +Mon Feb 24 06:08:00 UTC 2014 - co...@suse.com + +- updated to 0.08 + - Tests may now be run in parallel + Thank you ken...@cpan.org + + - Added delete_share + Thank you dm...@cpan.org + + - Added $INCLUDE_DOTFILES and $INCLUDE_DOTDIRS + Thank you sharya...@cpan.org + +------------------------------------------------------------------- Old: ---- File-ShareDir-Install-0.05.tar.gz New: ---- File-ShareDir-Install-0.08.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-File-ShareDir-Install.spec ++++++ --- /var/tmp/diff_new_pack.L2fKWD/_old 2014-02-28 19:01:00.000000000 +0100 +++ /var/tmp/diff_new_pack.L2fKWD/_new 2014-02-28 19:01:00.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-File-ShareDir-Install # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-File-ShareDir-Install -Version: 0.05 +Version: 0.08 Release: 0 %define cpan_name File-ShareDir-Install Summary: Install shared files @@ -29,7 +29,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros -#BuildRequires: perl(File::ShareDir::Install) %{perl_requires} %description @@ -39,7 +38,11 @@ It is a port of the Module::Install::Share manpage to the ExtUtils::MakeMaker manpage with the improvement of only installing the -files you want; '.svn' and other source-control junk will be ignored. +files you want; '.svn', '.git' and other source-control junk will be +ignored. + +Please note that this module installs read-only data files; empty +directories will be ignored. %prep %setup -q -n %{cpan_name}-%{version} ++++++ File-ShareDir-Install-0.05.tar.gz -> File-ShareDir-Install-0.08.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/Changes new/File-ShareDir-Install-0.08/Changes --- old/File-ShareDir-Install-0.05/Changes 2013-09-03 20:46:08.000000000 +0200 +++ new/File-ShareDir-Install-0.08/Changes 2014-01-29 16:33:45.000000000 +0100 @@ -1,5 +1,17 @@ Revision history for Perl extension File::ShareDir::Install. +0.08 Jan 29 2015 + - Tests may now be run in parallel + Thank you ken...@cpan.org + +0.07 Jan 17 2014 + - Added delete_share + Thank you dm...@cpan.org + +0.06 Jan 16 2014 + - Added $INCLUDE_DOTFILES and $INCLUDE_DOTDIRS + Thank you sharya...@cpan.org + 0.05 Sep 3 2013 - Tweak doco and fix typos Thank you dsteinbrun...@pobox.com diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/MANIFEST new/File-ShareDir-Install-0.08/MANIFEST --- old/File-ShareDir-Install-0.05/MANIFEST 2013-09-03 20:47:14.000000000 +0200 +++ new/File-ShareDir-Install-0.08/MANIFEST 2014-01-29 16:42:25.000000000 +0100 @@ -1,15 +1,21 @@ Changes -Makefile.PL MANIFEST +Makefile.PL README lib/File/ShareDir/Install.pm -t/module/again -t/module/deeper/bonk -t/module/bonk -t/share/honk t/00_compile.t t/01_pod.t t/02_pod_coverage.t t/10_makefile.t +t/11_dotfile.t +t/module/.dir/something +t/module/.something +t/module/again +t/module/bonk +t/module/deeper/bonk +t/share/.dir/something +t/share/.something +t/share/honk +t/12_delete.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/META.json new/File-ShareDir-Install-0.08/META.json --- old/File-ShareDir-Install-0.05/META.json 2013-09-03 20:47:14.000000000 +0200 +++ new/File-ShareDir-Install-0.08/META.json 2014-01-29 16:42:24.000000000 +0100 @@ -39,5 +39,5 @@ } }, "release_status" : "stable", - "version" : "0.05" + "version" : "0.08" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/META.yml new/File-ShareDir-Install-0.08/META.yml --- old/File-ShareDir-Install-0.05/META.yml 2013-09-03 20:47:14.000000000 +0200 +++ new/File-ShareDir-Install-0.08/META.yml 2014-01-29 16:42:24.000000000 +0100 @@ -21,4 +21,4 @@ ExtUtils::MakeMaker: 6.11 File::Spec: 0 IO::Dir: 0 -version: 0.05 +version: 0.08 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/lib/File/ShareDir/Install.pm new/File-ShareDir-Install-0.08/lib/File/ShareDir/Install.pm --- old/File-ShareDir-Install-0.05/lib/File/ShareDir/Install.pm 2013-09-03 20:46:24.000000000 +0200 +++ new/File-ShareDir-Install-0.08/lib/File/ShareDir/Install.pm 2014-01-29 16:38:01.000000000 +0100 @@ -9,53 +9,120 @@ use File::Spec; use IO::Dir; -our $VERSION = '0.05'; +our $VERSION = '0.08'; our @DIRS; -our %TYPES; +our %ALREADY; require Exporter; our @ISA = qw( Exporter ); -our @EXPORT = qw( install_share ); -our @EXPORT_OK = qw( postamble install_share ); +our @EXPORT = qw( install_share delete_share ); +our @EXPORT_OK = qw( postamble install_share delete_share ); +our $INCLUDE_DOTFILES = 0; +our $INCLUDE_DOTDIRS = 0; ##################################################################### sub install_share { my $dir = @_ ? pop : 'share'; my $type = @_ ? shift : 'dist'; - unless ( defined $type and $type eq 'module' or $type eq 'dist' ) { + unless ( defined $type and + ( $type =~ /^(module|dist)$/ ) ) { confess "Illegal or invalid share dir type '$type'"; } - unless ( defined $dir and -d $dir ) { - confess "Illegal or missing directory '$dir'"; + + if( $type eq 'dist' and @_ ) { + confess "Too many parameters to install_share"; + } + + my $def = _mk_def( $type ); + _add_module( $def, $_[0] ); + + _add_dir( $def, $dir ); +} + + +##################################################################### +sub delete_share +{ + my $dir = @_ ? pop : ''; + my $type = @_ ? shift : 'dist'; + unless ( defined $type and + ( $type =~ /^(module|dist)$/ ) ) { + confess "Illegal or invalid share dir type '$type'"; } if( $type eq 'dist' and @_ ) { - confess "Too many parameters to share_dir"; + confess "Too many parameters to delete_share"; } - push @DIRS, $dir; - $TYPES{$dir} = [ $type ]; - if( $type eq 'module' ) { - my $module = _CLASS( $_[0] ); + my $def = _mk_def( "delete-$type" ); + _add_module( $def, $_[0] ); + _add_dir( $def, $dir ); +} + + + +# +# Build a task definition +sub _mk_def +{ + my( $type ) = @_; + return { type=>$type, + dotfiles => $INCLUDE_DOTFILES, + dotdirs => $INCLUDE_DOTDIRS + }; +} + +# +# Add the module to a task definition +sub _add_module +{ + my( $def, $class ) = @_; + if( $def->{type} =~ /module$/ ) { + my $module = _CLASS( $class ); unless ( defined $module ) { confess "Missing or invalid module name '$_[0]'"; } - push @{ $TYPES{$dir} }, $module; + $def->{module} = $module; } - } +# +# Add directories to a task definition +# Save the definition +sub _add_dir +{ + my( $def, $dir ) = @_; + + $dir = [ $dir ] unless ref $dir; + + my $del = 0; + $del = 1 if $def->{type} =~ /^delete-/; + + foreach my $d ( @$dir ) { + unless ( $del or (defined $d and -d $d) ) { + confess "Illegal or missing directory '$d'"; + } + if( not $del and $ALREADY{ $d }++ ) { + confess "Directory '$d' is already being installed"; + } + push @DIRS, { %$def }; + $DIRS[-1]{dir} = $d; + } +} + + ##################################################################### +# Build the postamble section sub postamble { my $self = shift; my @ret; # = $self->SUPER::postamble( @_ ); - foreach my $dir ( @DIRS ) { - push @ret, __postamble_share_dir( $self, $dir, @{ $TYPES{ $dir } } ); + foreach my $def ( @DIRS ) { + push @ret, __postamble_share_dir( $self, $def ); } return join "\n", @ret; } @@ -63,33 +130,40 @@ ##################################################################### sub __postamble_share_dir { - my( $self, $dir, $type, $mod ) = @_; + my( $self, $def ) = @_; + + my $dir = $def->{dir}; + $DB::single = 1; my( $idir ); - if ( $type eq 'dist' ) { - $idir = File::Spec->catdir( '$(INST_LIB)', - qw( auto share dist ), - '$(DISTNAME)' - ); + + if( $def->{type} eq 'delete-dist' ) { + $idir = File::Spec->catdir( _dist_dir(), $dir ); } - else { - my $module = $mod; - $module =~ s/::/-/g; - $idir = File::Spec->catdir( '$(INST_LIB)', - qw( auto share module ), - $module - ); + elsif( $def->{type} eq 'delete-module' ) { + $idir = File::Spec->catdir( _module_dir( $def ), $dir ); + } + elsif ( $def->{type} eq 'dist' ) { + $idir = _dist_dir(); + } + else { # delete-share and share + $idir = _module_dir( $def ); } - my $files = {}; - _scan_share_dir( $files, $idir, $dir ); - - my $autodir = '$(INST_LIB)'; - my $pm_to_blib = $self->oneliner(<<CODE, ['-MExtUtils::Install']); + my @cmds; + if( $def->{type} =~ /^delete-/ ) { + @cmds = "\$(RM_RF) $idir"; + } + else { + my $autodir = '$(INST_LIB)'; + my $pm_to_blib = $self->oneliner(<<CODE, ['-MExtUtils::Install']); pm_to_blib({\@ARGV}, '$autodir') CODE - my @cmds = $self->split_command( $pm_to_blib, %$files ); + my $files = {}; + _scan_share_dir( $files, $idir, $dir, $def ); + @cmds = $self->split_command( $pm_to_blib, %$files ); + } my $r = join '', map { "\t\$(NOECHO) $_\n" } @cmds; @@ -99,19 +173,49 @@ return "config::\n$r"; } +# Get the per-dist install directory. +# We depend on the Makefile for most of the info +sub _dist_dir +{ + return File::Spec->catdir( '$(INST_LIB)', + qw( auto share dist ), + '$(DISTNAME)' + ); +} + +# Get the per-module install directory +# We depend on the Makefile for most of the info +sub _module_dir +{ + my( $def ) = @_; + my $module = $def->{module}; + $module =~ s/::/-/g; + return File::Spec->catdir( '$(INST_LIB)', + qw( auto share module ), + $module + ); +} sub _scan_share_dir { - my( $files, $idir, $dir ) = @_; + my( $files, $idir, $dir, $def ) = @_; my $dh = IO::Dir->new( $dir ) or die "Unable to read $dir: $!"; my $entry; while( defined( $entry = $dh->read ) ) { - next if $entry =~ /^\./ or $entry =~ /(~|,v)$/; + next if $entry =~ /(~|,v|#)$/; my $full = File::Spec->catfile( $dir, $entry ); if( -f $full ) { + next if not $def->{dotfiles} and $entry =~ /^\./; $files->{ $full } = File::Spec->catfile( $idir, $entry ); } elsif( -d $full ) { + if( $def->{dotdirs} ) { + next if $entry eq '.' or $entry eq '..' or + $entry =~ /^\.(svn|git|cvs)$/; + } + else { + next if $entry =~ /^\./; + } _scan_share_dir( $files, File::Spec->catdir( $idir, $entry ), $full ); } } @@ -158,9 +262,12 @@ allows you to locate these files after installation. It is a port of L<Module::Install::Share> to L<ExtUtils::MakeMaker> with the -improvement of only installing the files you want; C<.svn> and other +improvement of only installing the files you want; C<.svn>, C<.git> and other source-control junk will be ignored. +Please note that this module installs read-only data files; empty +directories will be ignored. + =head1 EXPORT =head2 install_share @@ -173,14 +280,18 @@ into a per-dist or per-module share directory. Must be called before L<WriteMakefile>. -The first 2 forms are equivalent. - -The files will be installed when you run C<make install>. +The first 2 forms are equivalent; the files are installed in a per-distribution +directory. For example C</usr/lib/perl5/site_perl/auto/share/dist/My-Dist>. The +name of that directory can be recovered with L<File::ShareDir/dist_dir>. + +The last form installs files in a per-module directory. For example +C</usr/lib/perl5/site_perl/auto/share/module/My-Dist-Package>. The name of that +directory can be recovered with L<File::ShareDir/module_dir>. -To locate the files after installation so they can be used inside your -module, see L<File::ShareDir>. +The parameter C<$dir> may be an array of directories. - my $dir = File::ShareDir::module_dir( $module ); +The files will be installed when you run C<make install>. However, the list +of files to install is generated when Makefile.PL is run. Note that if you make multiple calls to C<install_share> on different directories that contain the same filenames, the last of these calls takes @@ -189,13 +300,45 @@ install_share 'share1'; install_share 'share2'; -And both C<share1> and C<share2> contain a fill called C<info>, the file -C<share2/info> will be installed into your C<dist_dir()>. +And both C<share1> and C<share2> contain a file called C<info.txt>, the file +C<share2/info.txt> will be installed into your C<dist_dir()>. + +=head2 delete_share + + delete_share $list; + delete_share dist => $list; + delete_share module => $module, $list; + +Remove previously installed files or directories. + +Unlike L</install_share>, the last parameter is a list of files or +directories that were previously installed. These files and directories will +be deleted when you run C<make install>. + +The parameter C<$list> may be an array of files or directories. + +Deletion happens in-order along with installation. This means that you may +delete all previously installed files by putting the following at the top of +your Makefile.PL. + + delete_share '.'; + +You can also selectively remove some files from installation. + + install_share 'some-dir'; + if( ... ) { + delete_share 'not-this-file.rc'; + } =head2 postamble -Exported into the MY package. Only documented here if you need to write your -own postamble. +This function must be exported into the MY package. You will normaly do this +with the following. + + package MY; + use File::ShareDir::Install qw( postamble ); + +If you need to overload postamble, use the following. package MY; use File::ShareDir::Install; @@ -207,6 +350,44 @@ return join "\n", @ret; } +=head1 CONFIGURATION + +2 variables control the handling of dot-files and dot-directories. + +A dot-file has a filename that starts with a period (.). For example +C<.htaccess>. A dot-directory (or dot-dir) is a directory that starts with a +period (.). For example C<.config/>. Not all filesystems support the use +of dot-files. + +=head2 $INCLUDE_DOTFILES + +If set to a true value, dot-files will be copied. Default is false. + +=head2 $INCLUDE_DOTDIRS + +If set to a true value, the files inside dot-directories will be copied. +Known version control directories are still ignored. Default is false. + +=head2 Note + +These variables only influence subsequent calls to C<install_share()>. This allows +you to control the behaviour for each directory. + +For example: + + $INCLUDE_DOTDIRS = 1; + install_share 'share1'; + $INCLUDE_DOTFILES = 1; + $INCLUDE_DOTDIRS = 0; + install_share 'share2'; + +The directory C<share1> will have files in its dot-directories installed, +but not dot-files. The directory C<share2> will have files in its dot-files +installed, but dot-directories will be ignored. + + + + =head1 SEE ALSO L<File::ShareDir>, L<Module::Install>. @@ -217,7 +398,7 @@ =head1 COPYRIGHT AND LICENSE -Copyright (C) 2009-2011 by Philip Gwyn +Copyright (C) 2009-2014 by Philip Gwyn This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/02_pod_coverage.t new/File-ShareDir-Install-0.08/t/02_pod_coverage.t --- old/File-ShareDir-Install-0.05/t/02_pod_coverage.t 2010-10-19 21:03:02.000000000 +0200 +++ new/File-ShareDir-Install-0.08/t/02_pod_coverage.t 2014-01-17 19:50:16.000000000 +0100 @@ -11,8 +11,6 @@ pod_coverage_ok( "File::ShareDir::Install", { also_private => [ -# qr/^(OH|SE)_.+$/, -# qr/^(handler_for|instantiate|set_objectre)$/ ], }, "File::ShareDir::Install, ignoring private functions", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/10_makefile.t new/File-ShareDir-Install-0.08/t/10_makefile.t --- old/File-ShareDir-Install-0.05/t/10_makefile.t 2011-08-26 19:40:55.000000000 +0200 +++ new/File-ShareDir-Install-0.08/t/10_makefile.t 2014-01-29 16:37:02.000000000 +0100 @@ -6,15 +6,15 @@ use Config; use File::Path qw( rmtree ); -use Test::More ( tests => 15 ); +use Test::More ( tests => 16 ); use ExtUtils::MakeMaker; -my $FILE = 'test-Makefile'; -rmtree( [ qw( tlib troot ) ], 0, 0 ); +my $FILE = "test-$$-Makefile"; +rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); END { $FILE and -f $FILE and unlink $FILE; - rmtree( [ qw( tlib troot ) ], 0, 0 ); + rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); } use File::ShareDir::Install; @@ -29,8 +29,8 @@ WriteMakefile( NAME => 'File::ShareDir::Install', VERSION_FROM => 'lib/File/ShareDir/Install.pm', - INST_LIB => 'tlib/lib', - PREFIX => 'troot', + INST_LIB => "tlib-$$/lib", + PREFIX => "troot-$$", MAKEFILE => $FILE, PREREQ_PM => {}, ($] >= 5.005 ? @@ -55,9 +55,11 @@ ok( $content =~ m(t.module.again.+share.module.My-Test.again), "Shared by module again" ); ok( $content =~ m(t.module.deeper.bonk.+share.module.My-Test.deeper.bonk), "Shared by module in subdirectory" ); +ok( $content !~ m(t.share.\.something), "Don't share dot files" ); + ##### mysystem( $Config{make}, '-f', $FILE ); -my $TOP = "tlib/lib/auto/share"; +my $TOP = "tlib-$$/lib/auto/share"; ok( -f "$TOP/dist/File-ShareDir-Install/honk", "Copied to blib for dist" ); ok( -f "$TOP/module/My-Test/bonk", "Copied to blib for module" ); ok( -f "$TOP/module/My-Test/again", "Copied to blib for module again" ); @@ -77,7 +79,7 @@ } else { $TOP = "$1/auto/share"; - $TOP =~ s/\$\(SITEPREFIX\)/troot/; + $TOP =~ s/\$\(SITEPREFIX\)/troot-$$/; ok( -f "$TOP/dist/File-ShareDir-Install/honk", "Copied to blib for dist" ); ok( -f "$TOP/module/My-Test/bonk", "Copied to blib for module" ); ok( -f "$TOP/module/My-Test/again", "Copied to blib for module again" ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/11_dotfile.t new/File-ShareDir-Install-0.08/t/11_dotfile.t --- old/File-ShareDir-Install-0.05/t/11_dotfile.t 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/11_dotfile.t 2014-01-29 16:36:16.000000000 +0100 @@ -0,0 +1,84 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Config; + +use File::Path qw( rmtree ); +use Test::More ( tests => 9 ); + +use ExtUtils::MakeMaker; + +my $FILE = "test-$$-Makefile"; +rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); +END { + $FILE and -f $FILE and unlink $FILE; + rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); +} + +use File::ShareDir::Install; + +$File::ShareDir::Install::INCLUDE_DOTFILES = 1; +install_share 't/share'; +$File::ShareDir::Install::INCLUDE_DOTFILES = 0; +$File::ShareDir::Install::INCLUDE_DOTDIRS = 1; +install_share module => 'My::Test' => 't/module'; + + +delete $ENV{PERL_MM_OPT}; # local::lib + PREFIX below will FAIL +# XXX maybe we should just remove INSTALL_BASE=[^ ]+ from PERL_MM_OPT? + +WriteMakefile( + NAME => 'File::ShareDir::Install', + VERSION_FROM => 'lib/File/ShareDir/Install.pm', + INST_LIB => "tlib-$$/lib", + PREFIX => "troot-$$", + MAKEFILE => $FILE, + PREREQ_PM => {}, + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/File/ShareDir/Install.pm', + AUTHOR => 'Philip Gwyn <fil@localdomain>') : ()), +); + +sub slurp +{ + local @ARGV = @_; + local $/; + local $.; + <>; +}; + + +##### +ok( -f $FILE, "Created $FILE" ); +my $content = slurp $FILE; +ok( $content =~ m(t.share.\.something), "Shared a dotfile" ); +ok( $content !~ m(t.share.\.dir), " ... but not a dotdir" ); + +ok( $content !~ m(t.module.dir), "Shared a dotdir " ); +ok( $content !~ m(t.module.something), " ... but not a dotfile " ); + +##### +mysystem( $Config{make}, '-f', $FILE ); +my $TOP = "tlib-$$/lib/auto/share"; +ok( -f "$TOP/dist/File-ShareDir-Install/.something", "Copied a dotfile" ); +ok( !-d "$TOP/dist/File-ShareDir-Install/.dir", " ... but not dotdir" ); +ok( -d "$TOP/module/My-Test/.dir", "Copied a dotdir" ); +ok( !-f "$TOP/module/My-Test/.something", " ... but not a dotfile" ); + + +##################################### +sub mysystem +{ + my $cmd = join ' ', @_; + my $ret = qx($cmd 2>&1); + return unless $?; + die "Error running $cmd: ?=$? ret=$ret"; +} + +########################################################################### +package MY; + +use File::ShareDir::Install qw(postamble); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/12_delete.t new/File-ShareDir-Install-0.08/t/12_delete.t --- old/File-ShareDir-Install-0.05/t/12_delete.t 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/12_delete.t 2014-01-29 16:36:42.000000000 +0100 @@ -0,0 +1,81 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Config; + +use File::Path qw( rmtree ); +use Test::More ( tests => 7 ); + +use ExtUtils::MakeMaker; + +my $FILE = "test-$$-Makefile"; +rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); +END { + $FILE and -f $FILE and unlink $FILE; + rmtree( [ "tlib-$$", "troot-$$" ], 0, 0 ); +} + +use File::ShareDir::Install; + +install_share 't/share'; +install_share module => 'My::Test' => 't/module'; +delete_share 'module' => 'My::Test' => [ qw( again deeper ) ]; +delete_share 'dist' => 'honk'; + +delete $ENV{PERL_MM_OPT}; # local::lib + PREFIX below will FAIL +# XXX maybe we should just remove INSTALL_BASE=[^ ]+ from PERL_MM_OPT? + +WriteMakefile( + NAME => 'File::ShareDir::Install', + VERSION_FROM => 'lib/File/ShareDir/Install.pm', + INST_LIB => "tlib-$$/lib", + PREFIX => "troot-$$", + MAKEFILE => $FILE, + PREREQ_PM => {}, + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/File/ShareDir/Install.pm', + AUTHOR => 'Philip Gwyn <fil@localdomain>') : ()), +); + +sub slurp +{ + local @ARGV = @_; + local $/; + local $.; + <>; +}; + + +##### +ok( -f $FILE, "Created $FILE" ); +my $content = slurp $FILE; + +ok( $content =~ /RM_RF.+module.My-Test.again/, "Remove a file" ); +ok( $content =~ /RM_RF.+module.My-Test.deeper/, "Remove a dir" ); +ok( $content =~ /RM_RF.+dist...DISTNAME..honk/, "Remove from per-dist" ) + or die $content; + + +##### +mysystem( $Config{make}, '-f', $FILE ); +my $TOP = "tlib-$$/lib/auto/share"; +ok( -f "$TOP/module/My-Test/bonk", "Installed this file" ); +ok( !-f "$TOP/module/My-Test/again", "Removed this file" ); +ok( !-d "$TOP/dist/File-ShareDir-Install/deeper", "Removed a directory" ); + +##################################### +sub mysystem +{ + my $cmd = join ' ', @_; + my $ret = qx($cmd 2>&1); + return unless $?; + die "Error running $cmd: ?=$? ret=$ret"; +} + +########################################################################### +package MY; + +use File::ShareDir::Install qw(postamble); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/module/.dir/something new/File-ShareDir-Install-0.08/t/module/.dir/something --- old/File-ShareDir-Install-0.05/t/module/.dir/something 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/module/.dir/something 2014-01-16 20:28:18.000000000 +0100 @@ -0,0 +1 @@ +Thu Jan 16 14:28:18 EST 2014 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/module/.something new/File-ShareDir-Install-0.08/t/module/.something --- old/File-ShareDir-Install-0.05/t/module/.something 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/module/.something 2014-01-16 20:24:28.000000000 +0100 @@ -0,0 +1 @@ +Thu Jan 16 14:24:28 EST 2014 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/share/.dir/something new/File-ShareDir-Install-0.08/t/share/.dir/something --- old/File-ShareDir-Install-0.05/t/share/.dir/something 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/share/.dir/something 2014-01-16 20:28:28.000000000 +0100 @@ -0,0 +1 @@ +Thu Jan 16 14:28:28 EST 2014 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-ShareDir-Install-0.05/t/share/.something new/File-ShareDir-Install-0.08/t/share/.something --- old/File-ShareDir-Install-0.05/t/share/.something 1970-01-01 01:00:00.000000000 +0100 +++ new/File-ShareDir-Install-0.08/t/share/.something 2014-01-16 20:03:44.000000000 +0100 @@ -0,0 +1 @@ +Thu Jan 16 14:03:44 EST 2014 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org