github.com/olivere/camlistore@v0.0.0-20140121221811-1b7ac2da0199/server/sigserver/client.pl (about)

     1  #!/usr/bin/perl
     2  
     3  use strict;
     4  use LWP::UserAgent;
     5  use HTTP::Request;
     6  use HTTP::Request::Common;
     7  use Getopt::Long;
     8  
     9  my $keyid = "26F5ABDA";
    10  my $server = "http://localhost:2856";
    11  GetOptions("keyid=s" => \$keyid,
    12             "server=s" => \$server)
    13      or usage();
    14  
    15  $server =~ s!/$!!;
    16  
    17  my $file = shift or usage();
    18  -f $file or usage("$file isn't a file");
    19  
    20  my $json = do { undef $/; open(my $fh, $file); <$fh> };
    21  
    22  sub usage {
    23      my $err = shift;
    24      if ($err) {
    25          print STDERR "Error: $err\n";
    26      }
    27      print STDERR "Usage: client.pl [OPTS] <file.json>\n";
    28      print STDERR "Options:\n";
    29      print STDERR "   --keyid=<keyid>\n";
    30      print STDERR "   --server=http://host:port\n";
    31      exit(1);
    32  }
    33  
    34  my $req = POST("$server/camli/sig/sign",
    35                 "Authorization" => "Basic dGVzdDp0ZXN0", # test:test
    36                 Content => {
    37                     "json" => $json,
    38                     "keyid" => $keyid,
    39                 });
    40  
    41  my $ua = LWP::UserAgent->new;
    42  my $res = $ua->request($req);
    43  unless ($res->is_success) {
    44      die "Failure: " . $res->status_line . ": " . $res->content;
    45  }
    46  
    47  print $res->content;
    48  
    49  
    50