.lib/perl5/Autofetch.pm

Wed, 14 Feb 2018 12:34:00 -0500

author
Meredith Howard <mhoward@roomag.org>
date
Wed, 14 Feb 2018 12:34:00 -0500
changeset 679
2c32255d5c84
parent 678
4c569c2420f1
child 681
a478dd55388a
permissions
-rw-r--r--

remove dotjs files

676
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
1 package Autofetch;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
2
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
3 use strict;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
4 use warnings;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
5
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
6 sub fetch {
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
7 my ($path, $module) = @_;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
8 system 'cpanm', -nq, -l => $path, $module;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
9 }
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
10
678
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
11 sub cachepath { "$ENV{HOME}/.cache/lib/" . ($_[0] =~ y|/ |-_|r) }
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
12
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
13 sub modulefy { $_[0] =~ s/\.pm$//r =~ s|/|::|gr }
676
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
14
678
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
15 my $path = cachepath($0);
676
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
16
678
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
17 push @INC, "$path/lib/perl5", sub {
676
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
18 my (undef, $file) = @_;
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
19
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
20 fetch($path, modulefy($file));
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
21
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
22 return IO::File->new($path . '/lib/perl5/' . $file);
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
23 };
678
4c569c2420f1 oh, add the cache path too
Meredith Howard <mhoward@roomag.org>
parents: 676
diff changeset
24
676
1b5b084bccbb add Autofetch
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
25 1;

mercurial