brew-aspell-dictionaries - generate aspell formulae

This script fetches the current list of aspell dictionaries from
the gnu server and generates formulae that can then be
included into the aspell formula.
This makes updating current dictionaries and adding new ones easier.

Tweaked by Mike to generate SHA1s instead of MD5s.

Closes Homebrew/homebrew#12180.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Alexis Hildebrandt 2012-09-03 19:02:25 -07:00 committed by Mike McQuaid
parent ffd6e7f340
commit 1deb3c0214

View File

@ -0,0 +1,49 @@
#!/bin/sh
#
# brew-aspell-dictionaries - update aspell formula to include latest dictionaries
# This script fetches the current index for the aspell dictionaries gnu server,
# it parses the html to retrieve the URL to the dictionary archive for each
# available language.
# The script then calculates the sha1 for each dictionary archive and
# generates a brew formula for each language.
# The result can then to be merged into the aspell formula, to update
# the available dictionary formulae.
dictionaries_url=http://ftp.gnu.org/gnu/aspell/dict
tmp_file=`mktemp -t brew_aspell_dictionaries`
brew_formulae_tmp_file=`mktemp -t brew_aspell_dictionaries_formulae`
echo "Downloading aspell dictionaries Index"
curl -s ${dictionaries_url}/0index.html \
| egrep '^(<tr><td><a|</table)' \
| cut -d\" -f2,4 \
> $tmp_file
echo "# BEGIN generated with `basename $0`" > $brew_formulae_tmp_file
langs=""
for dict in `cat $tmp_file`; do
[ "${dict}" = "</table>" ] && break # only read the entries in the first table, which lists the dictionaries for aspell 0.60
lang=`echo $dict | awk -F\" '{ gsub("-", "_", $1); print $1 }'`
url="${dictionaries_url}/"`echo $dict | awk -F\" '{ print $2 }'`
langs="${langs} ${lang}"
echo "Calculating sha1 for formula: ${lang}"
sha1=`curl -s "${url}" | shasum | awk '{print $1}'`
cat <<EOF >> $brew_formulae_tmp_file
class Aspell_${lang} < AspellLang
url '${url}'
sha1 '${sha1}'
end
EOF
done
cat <<EOF >> $brew_formulae_tmp_file
def available_languages
%w(${langs})
end
# END generated with `basename $0`
EOF
rm $tmp_file
echo "The formulae for the aspell dictionaries have been written to\n$brew_formulae_tmp_file"