#!/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 '^( $tmp_file echo "# BEGIN generated with `basename $0`" > $brew_formulae_tmp_file langs="" for dict in `cat $tmp_file`; do [ "${dict}" = "" ] && 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 <> $brew_formulae_tmp_file class Aspell_${lang} < AspellLang url '${url}' mirror '${mirror}' sha1 '${sha1}' end EOF done cat <> $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"