summaryrefslogtreecommitdiff
path: root/cert-info
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2020-01-22 14:26:30 +0000
committerPeter Wu <peter@lekensteyn.nl>2020-01-22 14:26:30 +0000
commit4b6e0eec1b705c0b384cb703b13b857be6e3eda1 (patch)
treeaa0ae5db611d8f34c6fdb86868e5d8865f1ecce4 /cert-info
parentdf3e5c893d0f4d02e99a3d2f171e3d98817d5266 (diff)
downloadscripts-4b6e0eec1b705c0b384cb703b13b857be6e3eda1.tar.gz
cert-info: add macOS compatibility
Diffstat (limited to 'cert-info')
-rwxr-xr-xcert-info18
1 files changed, 11 insertions, 7 deletions
diff --git a/cert-info b/cert-info
index 28865bd..e6e38fe 100755
--- a/cert-info
+++ b/cert-info
@@ -18,12 +18,16 @@ auto_less() {
[ ! -t 1 ] || { "$0" "$@" | less; exit $?; }
}
+# Compatibility for macOS
+type timeout 2>/dev/null >&2 ||
+timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; }
+
main() {
if [ "$1" = "csv" ]; then
[ $# -ge 2 ] || usage "Missing outdir"
outdir="${2:-.}/"
mkdir -p "$outdir"
- tmp=$(mktemp); trap "rm -f $tmp" EXIT
+ tmp=$(mktemp); trap 'rm -f "$tmp"' EXIT
shift 2
for arg; do parse_arg "$arg" || usage "Unrecognized option $arg"; done
i=0
@@ -50,21 +54,21 @@ elif [ ! -t 0 ]; then
elif [ $# -gt 0 ]; then
auto_less "$@"
for arg; do
- ! parse_arg "$arg" || continue
+ ! parse_arg "$arg" || continue
host="${arg%%:*}"
port="${arg##*:}"
- [ "$port" != "$arg" -a -n "$port" ] || port=443
+ [ "$port" != "$arg" ] && [ -n "$port" ] || port=443
echo "# === $host:$port ==="
get_cert "$host" "$port" | parse_cert
done
else
usage
-fi
+fi
}
get_cert() {
local host="$1" port="$2"
- if ! nc -z -w 2 "$host" "$port"; then
+ if ! nc -z -w 2 "$host" "$port" 2>/dev/null; then
echo "# conn timeout for $host:$port!" >&2
return 1
fi
@@ -91,8 +95,8 @@ parse_arg +cert
parse_cert() {
infocmd="openssl x509 -text -nameopt sep_comma_plus_space"
[ $include_cert -eq 1 ] || infocmd="$infocmd -noout"
- awk -vOneOnly="$depth_1" -vCertOnly="$cert_only" \
- -vinfocmd="$infocmd" '
+ awk -v OneOnly="$depth_1" -v CertOnly="$cert_only" \
+ -v infocmd="$infocmd" '
BEGIN {
sep="# ";
for (i=0; i<77; i++) {