diff options
author | Peter Wu <peter@lekensteyn.nl> | 2020-01-22 14:26:30 +0000 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2020-01-22 14:26:30 +0000 |
commit | 4b6e0eec1b705c0b384cb703b13b857be6e3eda1 (patch) | |
tree | aa0ae5db611d8f34c6fdb86868e5d8865f1ecce4 /cert-info | |
parent | df3e5c893d0f4d02e99a3d2f171e3d98817d5266 (diff) | |
download | scripts-4b6e0eec1b705c0b384cb703b13b857be6e3eda1.tar.gz |
cert-info: add macOS compatibility
Diffstat (limited to 'cert-info')
-rwxr-xr-x | cert-info | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -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++) { |