package Pod::HtmlPsPdf::Common;
use strict;
use Symbol ();
use File::Basename ();
use File::Copy ();
use Pod::HtmlPsPdf::Config ();
my $config = Pod::HtmlPsPdf::Config->new();
### Common functions
# copy_file($src_filename,$dest_filename); $src_filename will be
# placed into the specified path, if one of the directories in the
# target path doesn't exist -- it'll be created.
###############
sub copy_file{
my ($src,$dst) = @_;
# make sure that the directory exist or create one
my $base_dir = File::Basename::dirname $dst;
create_dir($base_dir) unless (-d $base_dir);
File::Copy::copy($src,$dst);
} # end of sub copy_file
# write_file($filename,$ref_to_array);
# content will be written to the file from the passed array of
# paragraphs
###############
sub write_file{
my ($fn,$ra_content) = @_;
# make sure that the directory exist or create one
my $base_dir = File::Basename::dirname $fn;
create_dir($base_dir) unless (-d $base_dir);
my $fh = Symbol::gensym;
open $fh, ">$fn" or die "Can't open $fn for writing: $!\n";
print $fh @$ra_content;
close $fh;
} # end of sub write_file
# recursively creates a multi-layer directory
###############
sub create_dir{
my $dir = shift || '';
return if !$dir or -d $dir;
my $ancestor_dir = File::Basename::dirname $dir;
create_dir($ancestor_dir);
my $mode = $config->get_param('dir_mode');
mkdir $dir, $mode;
}
# read_file_paras($filename,$ref_to_array);
# content will be returned in the passed array of paragraphs
###############
sub read_file{
my ($fn,$ra_content) = @_;
my $fh = Symbol::gensym;
open $fh, $fn or die "Can't open $fn for reading: $!\n";
local $/ = "";
@$ra_content = <$fh>;
close $fh;
} # end of sub read_file
1;
__END__