fdroiddata/tools/google-code-moved.sh
2015-08-28 15:30:56 -07:00

44 lines
963 B
Bash
Executable file

#!/bin/sh
# This fetches all google code source pages and reports those that have moved
# to github.
set -e
all=$(sed -n 's@Source Code:\(.*code\.google\.com.*/source\)@\1@p' metadata/*.txt | sort -u)
len=$(echo "$all" | wc -l)
echo "$len apps left"
moved() {
if echo $2 | grep -q accounts/ServiceLogin; then
return
fi
printf "\n%s\n" $1
printf "\tProject moved: %s\n" $2
}
echo "$all" | sort -u | shuf | while read url; do
printf "."
redurl=$(curl -s -I $url/checkout | perl -n -e '/^Location: (.*)$/ && print "$1\n"')
if echo $redurl | grep -q hosting/moved; then
found=$(curl -L -s $url/checkout | sed -n 's/.*View the project at: <a href="\(.*\)">.*/\1/p')
moved $url $found
continue
fi
if [ -n "$redurl" ] && [ "$redurl" != "$url" ]; then
moved $url $redurl
continue
fi
found=$(curl -L -s $url/checkout | sed -n 's/.*<A HREF="\(.*\)">here<\/A>.*/\1/p')
if [ -n "$found" ]; then
moved $url $found
continue
fi
done
echo