aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/aspell-dictionaries.rb
blob: 8e9197bdae143ae52c45bb1adb6c4c8e7eecb8ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require 'open-uri'
require 'resource'
require 'formula'

module Homebrew
  def aspell_dictionaries
    dict_url    = "http://ftpmirror.gnu.org/aspell/dict"
    dict_mirror = "https://ftp.gnu.org/gnu/aspell/dict"
    languages   = {}

    open("#{dict_url}/0index.html") do |content|
      content.each_line do |line|
        break if %r{^</table} === line
        next unless /^<tr><td><a/ === line

        fields = line.split('"')
        lang, path = fields[1], fields[3]
        lang.gsub!("-", "_")
        languages[lang] = path
      end
    end

    languages.inject([]) do |resources, (lang, path)|
      r = Resource.new(lang)
      r.owner = Formulary.factory("aspell")
      r.url "#{dict_url}/#{path}"
      r.mirror "#{dict_mirror}/#{path}"
      resources << r
    end.each(&:fetch).each do |r|
      puts <<-EOS
        option "with-lang-#{r.name}", "Install #{r.name} dictionary"
        resource "#{r.name}" do
          url "#{r.url}"
          mirror "#{r.mirrors.first}"
          sha256 "#{r.cached_download.sha256}"
        end

      EOS
    end
  end
end