Refactor file writing - arrange for use of bundled Perl modules as fallback
For our own convenience, we need a mechanism to be able to fall back on bundled Perl modules. It's a minimal package that's called like this: use with_fallback qw(Module1 Module2 ...); For each module, it will try to require them from the system installation, and failing that, it will temporarly add external/perl and try to require transfer::{ModuleName}. It requires that each bundled Perl modules is accompanied by a small transfer module (external/perl/transfer/ModuleName.pm in our example) that knows exactly what to load. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
291e94df90
commit
35c3a562c7
19
util/with_fallback.pm
Normal file
19
util/with_fallback.pm
Normal file
@ -0,0 +1,19 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
package with_fallback;
|
||||
|
||||
sub import {
|
||||
use File::Basename;
|
||||
use File::Spec::Functions;
|
||||
foreach (@_) {
|
||||
eval "require $_";
|
||||
if ($@) {
|
||||
unshift @INC, catdir(dirname(__FILE__), "..", "external", "perl");
|
||||
my $transfer = "transfer::$_";
|
||||
eval "require $transfer";
|
||||
shift @INC;
|
||||
warn $@ if $@;
|
||||
}
|
||||
}
|
||||
}
|
||||
1;
|
Loading…
x
Reference in New Issue
Block a user