#!/usr/local/bin/perl $#ARGV == 0 || die "usage: ssldir.pl /new/path\n"; @files=('crypto/cryptlib.h', 'Makefile.ssl', 'tools/c_rehash', 'util/mk1mf.pl', ); %cryptlib=( '\sX509_CERT_AREA\s',"#define X509_CERT_AREA\t\t".'"%s"', '\sX509_CERT_DIR\s', "#define X509_CERT_DIR\t\t".'"%s/certs"', '\sX509_CERT_FILE\s', "#define X509_CERT_FILE\t\t".'"%s/cert.pem"', '\sX509_PRIVATE_DIR\s',"#define X509_PRIVATE_DIR\t".'"%s/private"', ); %Makefile_ssl=( '^INSTALLTOP=','INSTALLTOP=%s', ); %c_rehash=( '^DIR=', 'DIR=%s', ); %mk1mf=( '^\$INSTALLTOP=','$INSTALLTOP="%s";', ); &dofile("crypto/cryptlib.h",$ARGV[0],%cryptlib); &dofile("Makefile.ssl",$ARGV[0],%Makefile_ssl); &dofile("tools/c_rehash",$ARGV[0],%c_rehash); &dofile("util/mk1mf.pl",$ARGV[0],%mk1mf); sub dofile { ($f,$p,%m)=@_; open(IN,"<$f") || die "unable to open $f:$!\n"; @a=; close(IN); foreach $k (keys %m) { grep(/$k/ && ($_=sprintf($m{$k}."\n",$p)),@a); } ($ff=$f) =~ s/\..*$//; open(OUT,">$ff.new") || die "unable to open $f:$!\n"; print OUT @a; close(OUT); rename($f,"$ff.bak") || die "unable to rename $f\n"; rename("$ff.new",$f) || die "unable to rename $ff.new\n"; }