#!/usr/bin/perl use strict; use POE::Declare::HTTP::Client (); exit(255) unless $ARGV[0]; # print STDERR "# STARTUP\n"; sleep 5; my $client = POE::Declare::HTTP::Client->new( Timeout => 5, ResponseEvent => \&response, ShutdownEvent => \&shutdown, ); # Startup, ping the server to let them know we are running $client->start; # Ping # print STDERR "# GET $ARGV[0]\n"; $client->GET($ARGV[0]); my $response = 0; sub response { if ( ++$response == 1 ) { # Fetch a CPAN module from the mirror # print STDERR "# GET $ARGV[0]cpan/Config-Tiny-2.13.tar.gz\n"; $client->GET("$ARGV[0]cpan/Config-Tiny-2.13.tar.gz"); } elsif ( $response == 2 ) { # Upload the content file # print STDERR "# PUT $ARGV[0]response.xml\n"; $client->PUT( "$ARGV[0]response.xml", Content => 'This is my response', ); } else { # print STDERR "# SHUTDOWN\n"; sleep 5; $client->stop; } } sub shutdown { sleep 1; exit(0); } POE::Kernel->run;