diff options
author | ivan <ivan> | 2002-04-16 21:24:45 +0000 |
---|---|---|
committer | ivan <ivan> | 2002-04-16 21:24:45 +0000 |
commit | 55dee0c595ea28dde3d2a30e1f238fc322e6e869 (patch) | |
tree | f9321e84f4ddc9f3966ba3f91093ddb4c1b5140b | |
parent | 207b9834ab70d170865f1f8c7de5e43fc2c5b17d (diff) |
auto-use export classes
-rw-r--r-- | FS/bin/freeside-queued | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued index f6226cca1..49b532ec3 100644 --- a/FS/bin/freeside-queued +++ b/FS/bin/freeside-queued @@ -100,6 +100,22 @@ while (1) { if $FS::svc_acct::icradius_dbh; forksuidsetup($user); + #auto-use export classes... + if ( $ljob->job =~ /(FS::part_export::\w+)::/ ) { + my $class = $1; + eval "use $class;"; + if ( $@ ) { + warn "job use $class failed"; + my %hash = $ljob->hash; + $hash{'status'} = 'failed'; + $hash{'statustext'} = $@; + my $fjob = new FS::queue( \%hash ); + my $error = $fjob->replace($ljob); + die $error if $error; + exit; #end-of-kid + }; + } + my $eval = "&". $ljob->job. '(@args);'; warn "running $eval"; eval $eval; #throw away return value? suppose so |