Commit 35c3a562 authored by Richard Levitte's avatar Richard Levitte
Browse files

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: default avatarRich Salz <rsalz@openssl.org>
parent 291e94df
Loading
Loading
Loading
Loading

util/with_fallback.pm

0 → 100644
+19 −0
Original line number Diff line number Diff line
#! /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;