1#!/usr/bin/env ruby 2# encoding: utf-8 3 4# this file auto-generates tlpsrc files for hyphenation patterns - to be improved 5 6require_relative 'lib/tex/hyphen' 7require_relative 'lib/tex/hyphen/texlive' 8include TeX::Hyphen 9include TeXLive 10 11#--------# 12# TLPSRC # 13#--------# 14 15print 'Generating .tlpsrc files for packages: ' 16Package.all.sort.each do |package| 17 tlpsrcname = File.join(PATH::TLPSRC, sprintf('hyphen-%s.tlpsrc', package.name.safe)) 18 file_tlpsrc = File.open(tlpsrcname, 'w') 19 print package.name.safe, ' ' 20 21 file_tlpsrc.puts "category TLCore" 22 package.list_dependencies.each do |dependency| 23 file_tlpsrc.puts dependency 24 end 25 26 # FIXME Still doesn’t work well for Latin 27 file_tlpsrc.printf "shortdesc %s.\n", package.description_s 28 package.description.split("\n").each do |line| 29 file_tlpsrc.printf "longdesc %s\n", line 30 end 31 package.languages.each do |language| 32 file_tlpsrc.printf "execute AddHyphen \\\n\tname=%s%s \\\n", language.babelname, language.list_synonyms 33 file_tlpsrc.printf "\t%s \\\n\t%s", language.list_hyphenmins, language.list_loader 34 if language.patterns_line + language.exceptions_line != "" 35 file_tlpsrc.printf " \\\n\t%s \\\n\t%s", language.patterns_line, language.exceptions_line 36 end 37 if language.bcp47 == "mn-cyrl-x-lmc" then 38 file_tlpsrc.printf " \\\n\tluaspecial=\"disabled:only for 8bit montex with lmc encoding\"" 39 end 40 # end-of-line 41 file_tlpsrc.puts 42 end 43 44 # documentation 45 package.list_support_files('doc').sort.each do |filename| 46 file_tlpsrc.printf "docpattern d texmf-dist/%s\n", filename 47 end 48 49 # sources 50 package.list_support_files('source').sort.each do |filename| 51 file_tlpsrc.printf "srcpattern d texmf-dist/%s\n", filename 52 end 53 54 package.list_run_files.sort.uniq.each do |filename| 55 file_tlpsrc.printf "runpattern f texmf-dist/%s\n", filename 56 end 57 file_tlpsrc.close 58end 59puts 60 61#--------------------------# 62# language.dat and friends # 63#--------------------------# 64ldatfile = File.join PATH::LANGUAGE_DAT, 'language.dat' 65File.open(ldatfile, 'w') do |file| 66 puts 'Generating language.dat' 67 Package.all.sort.each do |package| 68 package.languages.each do |language| 69 # Main language name 70 file.printf "%s\t%s\n", language.babelname, language.loadhyph 71 # Synonyms 72 language.synonyms.each do |synonym| 73 file.printf "=%s\n", synonym 74 end 75 end 76 end 77end 78