diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2022-01-11 21:09:38 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2022-01-11 21:09:38 +0300 |
commit | ce7eb4316d90bbc727b956fd7732ace558654305 (patch) | |
tree | b90fa0f5774ad753fa00f0696455d1a65e6487b3 |
initial
-rwxr-xr-x | cf-nginx-wl.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/cf-nginx-wl.sh b/cf-nginx-wl.sh new file mode 100755 index 0000000..d7f67bb --- /dev/null +++ b/cf-nginx-wl.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +TEMP=$(mktemp) +OUTPUT="$1" + +die() { + echo "error: $@" + [ -f "$TEMP" ] && rm "$TEMP" + exit 1 +} + +[ -z "$OUTPUT" ] && { + echo "usage: $0 OUTPUT" + exit +} + +curl -s "https://www.cloudflare.com/ips-v4" --output "$TEMP" || die "downloading failed" +[ -s "$TEMP" ] || die "temp file is empty" + +cat "$TEMP" | sed 's/^/allow /g' | sed 's/$/;/g' | tee "$TEMP" > /dev/null +echo -e "satisfy all;\n$(cat "$TEMP")" > "$TEMP" +echo "deny all;" >> "$TEMP" + +[ -f "$OUTPUT" ] && { + rm "$OUTPUT" || die "failed to remove old file $OUTPUT" +} +mv "$TEMP" "$OUTPUT" |