diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-16 18:38:49 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-16 18:38:49 +1200 |
commit | 0b1c99ffb1c3019e8afb9dcc542fbc5e868baef1 (patch) | |
tree | 9712aa161c25232e0f6561ee181b82eb42af347a /bin/urlc | |
parent | Put "all" subtargets on their own line (diff) | |
download | dotfiles-0b1c99ffb1c3019e8afb9dcc542fbc5e868baef1.tar.gz dotfiles-0b1c99ffb1c3019e8afb9dcc542fbc5e868baef1.zip |
Template traps in scripts depending on mktd(1)
Diffstat (limited to 'bin/urlc')
-rwxr-xr-x | bin/urlc | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/bin/urlc b/bin/urlc deleted file mode 100755 index 63f075bf..00000000 --- a/bin/urlc +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# Try to find erroneous or insecure URLs -self=urlc - -# cURL request timeout -tm=${URLCHECK_TIMEOUT:-8} - -# Create buffer files for the headers and body content, to be cleaned up on -# exit -td= -cleanup() { - [ -n "$td" ] && rm -fr -- "$td" - if [ "$1" != EXIT ] ; then - trap - "$1" - kill "-$1" "$$" - fi -} -for sig in EXIT HUP INT TERM ; do - # shellcheck disable=SC2064 - trap "cleanup $sig" "$sig" -done -td=$(mktd "$self") || exit -list=$td/list head=$td/head body=$td/body - -# Iterate through input; ignore leading/trailing whitespace -# shellcheck disable=SC2002 -cat -- "${@:--}" >"$list" -while read -r url ; do - - # Skip anything that doesn't start with HTTP - case $url in - http*) ;; - *) continue ;; - esac - - # Make initial request, log head and body to files, cry and skip on error - if ! curl -A Mozilla -fHLsS -D "$head" -m "$tm" -o "$body" -- \ - "$url" ; then - printf >&2 '%s: %s raises error\n' \ - "$self" "$url" - ex=1 - continue - fi - - # Iterate through header file, cry about the first redirect we find - while IFS=': ' read -r header value ; do - [ "$header" = 'Location' ] || continue - printf >&2 '%s: %s redirects to %s\n' \ - "$self" "$url" "$value" >&2 - ex=1 - break - done < "$head" - - # Skip anything that's already secure - case $url in - https*) continue ;; - *) ;; - esac - - # Form a naïve attempt at a possible secure URL and try to request it, - # point it out if it actually works - burl=${url#http://} - surl=https://$burl - if curl -A Mozilla -fLsS -D "$head" -m "$tm" -o "$body" -- \ - "$surl" 2>/dev/null ; then - printf >&2 '%s: %s has a working secure version at %s\n' \ - "$self" "$url" "$surl" - ex=1 - fi -done <"$list" - -# Wait for the input process to finish -wait - -# Exit if any errors -exit "${ex:-0}" |