-#!/usr/local/bin/perl
+#!{- $config{hashbangperl} -}
+
+# {- join("\n# ", @autowarntext) -}
+# Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
# Perl c_rehash script, scan all files in a directory
# and add symbolic links to their hash values.
-my $dir;
-my $prefix;
+my $dir = {- quotify1($config{openssldir}) -};
+my $prefix = {- quotify1($config{prefix}) -};
+my $errorcount = 0;
my $openssl = $ENV{OPENSSL} || "openssl";
my $pwd;
my $x509hash = "-subject_hash";
if ( $flag eq '-old') {
$x509hash = "-subject_hash_old";
$crlhash = "-hash_old";
- } elsif ( $flag eq '-h') {
+ } elsif ( $flag eq '-h' || $flag eq '-help' ) {
help();
} elsif ( $flag eq '-n' ) {
$removelinks = 0;
$verbose++;
}
else {
- print STDERR "Usage error; try -help.\n";
+ print STDERR "Usage error; try -h.\n";
exit 1;
}
}
sub help {
- print "Usage: c_rehash [-old] [-h] [-v] [dirs...]\n";
+ print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n";
print " -old use old-style digest\n";
- print " -h print this help text\n";
+ print " -h or -help print this help text\n";
print " -v print files removed and linked\n";
exit 0;
}
hash_dir($_);
} else {
print "Skipping $_, can't write\n";
+ $errorcount++;
}
}
}
+exit($errorcount);
sub hash_dir {
my %hashlist;
print "Doing $_[0]\n";
chdir $_[0];
opendir(DIR, ".");
- my @flist = readdir(DIR);
+ my @flist = sort readdir(DIR);
closedir DIR;
if ( $removelinks ) {
# Delete any existing symbolic links