use strict; use warnings;
package File::Share;
our $VERSION = '0.25';
use base 'Exporter';
our @EXPORT_OK = qw[
dist_dir
dist_file
module_dir
module_file
class_dir
class_file
];
our %EXPORT_TAGS = (
all => [ @EXPORT_OK ],
ALL => [ @EXPORT_OK ],
);
use File::ShareDir();
use Cwd qw[abs_path];
use File::Spec();
sub dist_dir {
my ($dist) = @_;
(my $inc = $dist) =~ s!(-|::)!/!g;
$inc .= '.pm';
my $path = $INC{$inc} || '';
$path =~ s/$inc$//;
$path = Cwd::realpath( File::Spec->catfile($path,'..') );
if ($path and
-d "$path/lib" and
-e "$path/share"
) {
return abs_path "$path/share";
}
else {
return File::ShareDir::dist_dir($dist);
}
}
sub dist_file {
my ($dist, $file) = @_;
my $dir = dist_dir($dist);
return File::Spec->catfile( $dir, $file );
}
sub module_dir {
die "File::Share::module_dir not yet supported";
}
sub module_file {
die "File::Share::module_file not yet supported";
}
1;