From d379141b316cf4e93f4ed65927e552acb8b5eaf9 Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Thu, 21 Jul 2011 04:11:31 +0000
Subject: added ssh calling code


diff --git a/rhimport-dn b/rhimport-dn
index c017d26..fcfa7e9 100755
--- a/rhimport-dn
+++ b/rhimport-dn
@@ -29,6 +29,8 @@ use XML::Feed::Entry;
 use XML::Feed::Content;
 use XML::Feed::Enclosure;
 use File::Fetch;
+use IO::Handle;
+use IPC::Open3;
 
 use lib '/usr/local/share/rhimport/';
 use rhimport;
@@ -39,8 +41,7 @@ my $DBPW = "lldriven";
 my $DB = "rivendell";
 
 my $RSS_URL = "http://www.democracynow.org/podcast.xml";
-my $PV_SCRIPT = "/usr/bin/ssh";
-my @PV_SCRIPT_ARGS = ('root@intranet', 'addnote', '111');
+my @PV_SCRIPT = ('/usr/bin/ssh', 'root@intranet', 'addnote', '111');
 
 my $user = `/usr/bin/id -un`;
 $user =~ s/\n//;
@@ -95,16 +96,24 @@ for my $entry ($feed->entries) {
       print "ok\n";
       
       print "summary:\n" . $sum_title . "\n\n" . $sum_text . "\n";
-      
-      push(@PV_SCRIPT_ARGS, sprintf("%04d-%02d-%02d", $today[0], $today[1], $today[2]));
-      push(@PV_SCRIPT_ARGS, $sum_title);
-      push(@PV_SCRIPT_ARGS, $sum_text);
-      system($PV_SCRIPT, @PV_SCRIPT_ARGS);
-      if($? eq 0) {
-        print "PV: note added successfully";
-      }
-      else {
+
+      push(@PV_SCRIPT, sprintf("%04d-%02d-%02d", $today[0], $today[1], $today[2]));
+      my ($reader, $writer, $error ) = ( new IO::Handle, new IO::Handle, new IO::Handle );
+      $writer->autoflush(1);
+      local $SIG{CHLD} = 'DEFAULT';
+      my $pid = open3($writer, $reader, $error, @PV_SCRIPT);
+      print $writer $sum_title . "\n" . $sum_text;
+      waitpid $pid, 0;
+      my $out = join('', <$reader>);
+      my $errstr = "";
+      if ( $? >> 8 ) {
+        $errstr = join('', <$error>);
         print "PV: adding note failed";
+        print "STDERR:\n" . $errstr . "\n\n";
+        print "STDOUT:\n" . $out . "\n\n";
+      } else {
+        print "PV: note added successfully";
+        print $out . "\n";
       }
     }
     print "\n";
@@ -114,6 +123,8 @@ for my $entry ($feed->entries) {
 (-e "$file") or die "file '$file' not found - donwload error?\n";
 print "will import $file to dropbox $dropbox (cart=$to_cart)\n\n";
 
+exit 0
+
 my $error_cb = sub {
   my ($text) = @_;
 
-- 
cgit v0.10.2