brew/Library/Contributions/cmd/brew-aspell-dictionaries

54 lines
1.8 KiB
Plaintext
Raw Normal View History

#!/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://ftpmirror.gnu.org/aspell/dict
dictionaries_mirror=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 -sL ${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 }'`
mirror="${dictionaries_mirror}/"`echo $dict | awk -F\" '{ print $2 }'`
langs="${langs} ${lang}"
echo "Calculating sha1 for formula: ${lang}"
sha1=`curl -sL "${url}" | shasum | awk '{print $1}'`
cat <<EOF >> $brew_formulae_tmp_file
class Aspell_${lang} < AspellLang
url '${url}'
mirror '${mirror}'
sha1 '${sha1}'
end
EOF
done
cat <<EOF >> $brew_formulae_tmp_file
class Aspell < Formula
def self.available_languages
%w(${langs})
end
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"