Created
November 7, 2012 08:24
-
-
Save dpetrov/4030168 to your computer and use it in GitHub Desktop.
Install all favorited distributions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use 5.010; | |
use Mojo::UserAgent; | |
my $url = shift @ARGV or die "Usage: $0 metacpan_author_url"; | |
my $ua = Mojo::UserAgent->new; | |
my $dom = $ua->get($url)->res->dom; | |
my @modules = $dom->find('td.release a')->pluck('text')->each; | |
for my $module (@modules) { | |
$module =~ s/-/::/g; | |
qx/cpanm $module/; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# and another solution proposed from Stephen Thirlwall (sdt) (see comment below) | |
cpan_favorites() { | |
perl -Mojo -E "g('https://metacpan.org/author/$1')->dom('td.release a')->pluck('text')->each(sub{s/-/::/g;say})" | |
} |
I think I prefer this which just lists them out, and then feed that into xargs cpanm or whatever:
cpan_favorites() {
perl -Mojo -E "g('https://metacpan.org/author/$1')->dom('td.release a')->pluck('text')->each(sub{s/-/::/g;say})"
}
That is really nice and I've already added it into my .bashrc :) I think also that the seconds version where you can pipe the output to cpanm is preferable. Thanks for the follow u and sharing it
See also TOKUHIROM's version.
Thanks @dolmen. Just saw the tweet and was checking it out ;)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Oh nice - thanks for this!
I saw this post http://blogs.perl.org/users/steven_haryanto/2012/10/your-own-taskbelikeauthorfavorited.html and thought it might be better to just feed the favorites list into cpanm, rather than uploading something onto cpan.
Here's a one-line version you can stick in your .bashrc:
usage: install_cpan_favorites $username
(somewhat inspired by this thread: https://groups.google.com/forum/?fromgroups=#!topic/mojolicious/iTVzzjX5pPQ)