#!/usr/bin/perl
# Simple tool to paste to Nopaste

use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
#use Net::Netrc;
use Getopt::Long;

my $sleep = 0;

# These are the params

my $parent_pid = "";                # whatever...
my $format = "";                    # default to plain text
my $code2 = "";                     # The paste text
my $poster = $ENV{'USER'};          # posted by username
my $paste = "Send";                 # The submit button
my $remember = "0";                 # remember settings? Not applicable
my $expiry = "d";                   # paste expires in 1 day (d, m, f) => (day, month, forever)

my $help = 0;

my $r = GetOptions(
	my %options = (
		"format=s" => \$format,
		"poster=s" => \$poster,
		"expiry=s" => \$expiry,
		"sleep=s" => \$sleep,
		"help" => \$help,
	)
);

if ($help) {
    print "Usage: rafb [filename]\n";
    print "\n"
    print "Reads from stdin when no filename is given.\n";
    print "\n"
	print "Possible options:\n";
	foreach my $k ( keys %options ) {
		print "   --$k \n";
	}
	exit;
}

my ( $filename ) = @ARGV;
if (!$filename) {
  $filename = "-";
}


open F, "$filename";
if (!F) {
  die "ERROR: $filename: $!\n";	
  #next;
}
my $code2 = do { local $/; <F> };
close F;

my $ua = LWP::UserAgent->new;

my $url = "http://pastebin.com/pastebin.php";

my $req = POST $url, [
                      parent_pid => $parent_pid,
                      format => $format,
                      code2 => $code2,
                      poster => $poster,
                      paste => $paste,
                      remember => $remember,
                      expiry => $expiry,
                     ];

#print $req->as_string."\n";
$resp = $ua->request($req);
#print $resp->as_string."\n";
die $resp->status_line if ($resp->is_error);
#print $resp->status_line."\n";
print $resp->header("Location"), "\n";
