FreeBSD doesn't have "date -r" and calls its sha1 hash tool "sha1".
Signed-off-by: Ed Maste <emaste@freebsd.org>
Signed-off-by: Ben Pfaff <blp@nicira.com>
log='@LOGDIR@/ovs-pki.log'
keytype=rsa
bits=2048
log='@LOGDIR@/ovs-pki.log'
keytype=rsa
bits=2048
+
+# OS-specific compatibility routines
+case $(uname -s) in
+FreeBSD)
+ file_mod_epoch()
+ {
+ stat -r "$1" | awk '{print $10}'
+ }
+
+ file_mod_date()
+ {
+ stat -f '%Sm' "$1"
+ }
+
+ sha1sum()
+ {
+ sha1 "$@"
+ }
+ ;;
+*)
+ file_mod_epoch()
+ {
+ date -r "$1" +%s
+ }
+
+ file_mod_date()
+ {
+ date -r "$1"
+ }
+ ;;
+esac
+
for option; do
# This option-parsing mechanism borrowed from a Autoconf-generated
# configure script under the following license:
for option; do
# This option-parsing mechanism borrowed from a Autoconf-generated
# configure script under the following license:
fingerprint() {
file=$1
name=${1-$2}
fingerprint() {
file=$1
name=${1-$2}
+ date=$(file_mod_date "$file")
if grep -e '-BEGIN CERTIFICATE-' "$file" > /dev/null; then
fingerprint=$(openssl x509 -noout -in "$file" -fingerprint |
sed 's/SHA1 Fingerprint=//' | tr -d ':')
if grep -e '-BEGIN CERTIFICATE-' "$file" > /dev/null; then
fingerprint=$(openssl x509 -noout -in "$file" -fingerprint |
sed 's/SHA1 Fingerprint=//' | tr -d ':')
for type in switch controller; do
cd "$pkidir/${type}ca/incoming" || exit 1
for file in $(glob "*"); do
for type in switch controller; do
cd "$pkidir/${type}ca/incoming" || exit 1
for file in $(glob "*"); do
- time=$(date -r "$file" +%s)
+ time=$(file_mod_epoch "$file")
if test "$time" -lt "$cutoff"; then
rm -f "$file"
fi
if test "$time" -lt "$cutoff"; then
rm -f "$file"
fi