summaryrefslogtreecommitdiff
path: root/lib/HTML/AutoConvert/Run.pm
diff options
context:
space:
mode:
authorivan <ivan>2008-08-11 07:38:09 +0000
committerivan <ivan>2008-08-11 07:38:09 +0000
commitb5e00dd5534d7f6ec852b537f551bb872931fa04 (patch)
tree3091d93f430e74f823397559d324d7f4ce882f7d /lib/HTML/AutoConvert/Run.pm
initial importSTART
Diffstat (limited to 'lib/HTML/AutoConvert/Run.pm')
-rw-r--r--lib/HTML/AutoConvert/Run.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/HTML/AutoConvert/Run.pm b/lib/HTML/AutoConvert/Run.pm
new file mode 100644
index 0000000..2eada89
--- /dev/null
+++ b/lib/HTML/AutoConvert/Run.pm
@@ -0,0 +1,30 @@
+package HTML::AutoConvert::Run;
+
+=head1 NAME
+
+HTML::AutoConvert::Run - Base class for HTML::AutoConvert plugs that run an external program
+
+=cut
+
+use strict;
+use IPC::Run qw( run timeout );
+
+sub html_convert {
+ my( $self, $file ) = ( shift, shift );
+ my $opt = ref($_[0]) ? shift : { @_ };
+
+ my @program = $self->program;
+ my $program = $program[0];
+
+ my $timeout = 60; #?
+
+ my( $html, $err ) = ( '', '');
+ local($SIG{CHLD}) = sub {};
+ run( [ @program, $file ], \undef, \$html, \$err, timeout($timeout) )
+ or die "$program failed with exit status ". ( $? >> 8 ). ": $err\n";
+
+ $html;
+
+}
+
+1;