|
@@ -1,36 +1,55 @@
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
+hostname="crafatar.com"
|
|
|
async="true"
|
|
|
+random="false"
|
|
|
interval="0.1"
|
|
|
-if [ "$1" = "-s" ]; then
|
|
|
- async=""
|
|
|
- shift
|
|
|
-elif [ "$1" = "-i" ]; then
|
|
|
- interval="$2"
|
|
|
- shift 2
|
|
|
-fi
|
|
|
-host="$1"
|
|
|
-shift
|
|
|
-if [ -z "$host" ] || [ ! -z "$@" ]; then
|
|
|
- echo "Usage: $0 [-s | -i <interval>] <host uri>"
|
|
|
+
|
|
|
+usage() {
|
|
|
+ echo "Usage: $0 [-s | -r | -i <interval> | -h <hostname>]... <host uri>" >&2
|
|
|
exit 1
|
|
|
-fi
|
|
|
+}
|
|
|
|
|
|
-# insert newline after uuids
|
|
|
-ids="$(cat 'uuids.txt')"
|
|
|
-# `brew install coreutils` on OS X
|
|
|
-ids="$(shuf <<< "$ids" 2>/dev/null || gshuf <<< "$ids")"
|
|
|
+get_ids() {
|
|
|
+ local shuf
|
|
|
+ if [ "$random" = "true" ]; then
|
|
|
+ while true; do uuid -v 4; done
|
|
|
+ else
|
|
|
+ # `brew install coreutils` on OS X for gshuf
|
|
|
+ shuf=$(command -v shuf gshuf)
|
|
|
+ # randomize ids
|
|
|
+ $shuf < uuids.txt
|
|
|
+ fi
|
|
|
+}
|
|
|
|
|
|
bulk() {
|
|
|
- trap return INT
|
|
|
- echo "$ids" | while read id; do
|
|
|
- if [ -z "$async" ]; then
|
|
|
- curl -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay"
|
|
|
+ trap return INT # return from this function on Ctrl+C
|
|
|
+ get_ids | while read id; do
|
|
|
+ if [ "$async" = "false" ]; then
|
|
|
+ curl -H "Host: $hostname" -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay"
|
|
|
else
|
|
|
- curl -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" &
|
|
|
+ curl -H "Host: $hostname" -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" &
|
|
|
sleep "$interval"
|
|
|
fi
|
|
|
done
|
|
|
}
|
|
|
|
|
|
+while [ $# != 0 ]; do
|
|
|
+ case "$1" in
|
|
|
+ -s)
|
|
|
+ async="false";;
|
|
|
+ -r)
|
|
|
+ random="true";;
|
|
|
+ -i)
|
|
|
+ interval="$2"
|
|
|
+ shift;;
|
|
|
+ *)
|
|
|
+ [ -n "$host" ] && usage
|
|
|
+ host="$1";;
|
|
|
+ esac
|
|
|
+ shift
|
|
|
+done
|
|
|
+
|
|
|
+[ -z "$host" ] && usage
|
|
|
+
|
|
|
time bulk
|