Configure: cleanup @disable_cascade
[openssl.git] / tools / c_rehash.in
index 6c2ff065d1b54ede33a884458667229d7b9336a1..e65822203dba36bb8fbe68ed01404f45df11830f 100644 (file)
@@ -1,11 +1,20 @@
-#!/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";
@@ -21,7 +30,7 @@ while ( $ARGV[0] =~ /^-/ ) {
     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;
@@ -29,15 +38,15 @@ while ( $ARGV[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;
 }
@@ -89,16 +98,18 @@ foreach (@dirlist) {
                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