From ed1617c2e849332eef4c56ca89abb6f8b9ddc4a6 Mon Sep 17 00:00:00 2001 From: Tokuhiro Matsuno Date: Wed, 20 Jul 2011 23:38:32 +0900 Subject: [PATCH] added git-search command --- git-search | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 git-search diff --git a/git-search b/git-search new file mode 100755 index 0000000..eac3df1 --- /dev/null +++ b/git-search @@ -0,0 +1,22 @@ +#!/usr/bin/env perl +use 5.12.0; +use URI::Escape qw/uri_escape/; +use LWP::UserAgent; +use JSON; +use List::Util qw/max/; + +binmode *STDOUT, ':utf8'; + +my $keyword = join(' ', @ARGV) || die "Usage: $0 keyword\n"; + +my $ua = LWP::UserAgent->new(); +my $res = $ua->get( + 'http://github.com/api/v2/json/repos/search/' . uri_escape($keyword) ); +$res->is_success or die $res->status_line; +my $data = decode_json($res->decoded_content); +my $maxlen = + max map { length "$_->{owner}/$_->{name}" } @{ $data->{repositories} }; +for my $repo (@{$data->{repositories}}) { + printf "%-${maxlen}s - %s\n", "$repo->{owner}/$repo->{name}", $repo->{description}; +} +