#!/usr/bin/perl -w

# Perl script to use Darxite to get a file.
# Anyone who wants to make it CGI-able is more than welcome!

$VERSION = 0.1;
$AUTHORS = "Ashley Montanaro";

use Socket;

$cmd_line = join(' ', @ARGV);

sub get_url {
  unlink "/tmp/pdarxget.tmp";
  $get_string = "Get " . $_[0] . " | /tmp/pdarxget.tmp | | | n\n";
  socket (SOCK, PF_UNIX, SOCK_STREAM, 0) || die ("Couldn't create socket: $!");
  $name = getlogin || getpwuid($<) || "Kilroy";
  $filename = "/tmp/darxsock." . $name;

  connect (SOCK, sockaddr_un($filename)) ||
    die ("Couldn't connect to daemon: $!");
  syswrite (SOCK, "pdarxget\n", 11);
  syswrite (SOCK, $get_string, length($get_string));
  $line = <SOCK>;
  $line =~ /^901/ && die $line;
  $line = <SOCK>;
  close SOCK;
  open FILE, "/tmp/pdarxget.tmp";
  while (<FILE>) {
    print;
  }
  close FILE;
  unlink "/tmp/pdarxget.tmp";
}

if ($#ARGV != 0 || $cmd_line =~ /-h/) {
  print ("Usage: ", $0, " URL\n");
  exit;
}
elsif ($cmd_line =~ /-v/) {
  print ("pdarxget utility version ", $VERSION, ", by ", $AUTHORS, ".\n");
  exit;
}
else {
  get_url($ARGV[0]);
}
