• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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