1use strict; 2use warnings; 3package GeneratePackage; 4# vim:ts=8:sw=2:et:sta:sts=2 5 6use base 'Exporter'; 7our @EXPORT = qw(tmpdir generate_file); 8 9use Cwd; 10use File::Spec; 11use File::Path; 12use File::Temp; 13use IO::File; 14 15sub tmpdir { 16 File::Temp::tempdir( 17 'MMD-XXXXXXXX', 18 CLEANUP => 1, 19 DIR => ($ENV{PERL_CORE} ? File::Spec->rel2abs(Cwd::cwd) : File::Spec->tmpdir), 20 ); 21} 22 23sub generate_file { 24 my ($dir, $rel_filename, $content) = @_; 25 26 File::Path::mkpath($dir) or die "failed to create '$dir'"; 27 my $abs_filename = File::Spec->catfile($dir, $rel_filename); 28 29 Test::More::note("working on $abs_filename"); 30 31 my $fh = IO::File->new(">$abs_filename") or die "Can't write '$abs_filename'\n"; 32 print $fh $content; 33 close $fh; 34 35 return $abs_filename; 36} 37 381; 39