.lib/perl5/Autofetch.pm

Wed, 14 Feb 2018 12:25:53 -0500

author
Meredith Howard <mhoward@roomag.org>
date
Wed, 14 Feb 2018 12:25:53 -0500
changeset 678
4c569c2420f1
parent 676
1b5b084bccbb
child 681
a478dd55388a
permissions
-rw-r--r--

oh, add the cache path too

package Autofetch;

use strict;
use warnings;

sub fetch {
  my ($path, $module) = @_;
  system 'cpanm', -nq, -l => $path, $module;
}

sub cachepath { "$ENV{HOME}/.cache/lib/" . ($_[0] =~ y|/ |-_|r) }

sub modulefy { $_[0] =~ s/\.pm$//r =~ s|/|::|gr }

my $path = cachepath($0);

push @INC, "$path/lib/perl5", sub {
  my (undef, $file) = @_;

  fetch($path, modulefy($file));

  return IO::File->new($path . '/lib/perl5/' . $file);
};

1;

mercurial