This probably fixes bug #839 - mine time was hardcoded to 3000 in Attack, instead of using the "0 as undefined" input that other places were using. When
re653e96b0ec3 started paying attention to the input parameter, this previously ignored value became a problem.
#!/bin/sh
#HW_HG=
if [ -z "$1" ]; then
echo 'You have to supply at least one hedgewars git revision as parameter!' >&2
exit
fi
if [ -z "$HW_HG" ]; then
HW_HG="$PWD"
fi
if [ ! -d "$HW_HG/.hg" ]; then
echo 'You have to set HW_HG (inside script or env) to a repo clone OR call this script from inside the repository!' >&2
exit
fi
while [ ! -z "$1" ]; do
echo
echo
echo '---------------------------------------------------------------'
echo "$1"
echo '---------------------------------------------------------------'
url="https://github.com/hedgewars/hw/commit/$1"
echo "Checking $url ..."
echo
page=$(wget -q -O- "$url")
author=$(echo "$page" | sed -rn 's/^.*"author-name">(<[^>]*>)*([^ <]*).*/\2/ p')
if [ -z "$author" ]; then
echo 'Couldn'\''t find author! Skipping '"$1"' ...' >&2
shift
continue
fi
echo 'Found author: '"$author"
date=$(echo "$page" | sed -rn 's/^.*<time datetime="([^T]+)T([^Z]+).*/\1 \2 +0000/ p')
if [ -z "$date" ]; then
echo 'Couldn'\''t find date! Skipping '"$1"' ...' >&2
shift
continue
fi
echo 'Found date: '"$date"
echo
echo 'Checking mercurial log for matches ...'
echo
result=$(hg log -R "$HW_HG" -u "$author" -d "$date" -v -l1)
if [ -z "$result" ]; then
echo 'No match :('
shift
continue
fi
rev=$(echo "$result" | sed 's/^.*://;q')
echo 'Found match: r'"$rev"
echo 'Link: https://code.google.com/p/hedgewars/source/detail?r='"$rev"
echo
echo "$result"
# proceed to next parameter
shift
done
echo