require "language/perl" class Po4a < Formula include Language::Perl::Shebang desc "Documentation translation maintenance tool" homepage "https://po4a.org" url "https://github.com/mquinson/po4a/releases/download/v0.69/po4a-0.69.tar.gz" sha256 "7cd4aff13661665ec2d9df478757ae407683d4ecb5c2627ccf8b46729bcb9496" license "GPL-2.0-or-later" head "https://github.com/mquinson/po4a.git", branch: "master" bottle do sha256 cellar: :any, arm64_ventura: "837f217dfce71d671aaf7fcc547e1d93724e065e05a29d62ab39a7597e7446f4" sha256 cellar: :any, arm64_monterey: "b06c39d51e9c012149b4eddee10bdaa3e382132e47c1f8bec007d89ce7bc4498" sha256 cellar: :any, arm64_big_sur: "ba4f0c6a6c9f090f300a62bc873a20c46a2f93e1eb5d2dd9e171c3c31f694e76" sha256 cellar: :any, ventura: "030710ab847594cad08486ccdbbb63b7f4e897c463c90d09e64f742225aace32" sha256 cellar: :any, monterey: "0e7ffba17780c748df3ba0066b290ea1543eaea90517e50739186c2d2b8d8bc4" sha256 cellar: :any, big_sur: "19b5f87241de9a45d175a6b4b0283fffca288649dbb58bc122de9fbf53ba8216" sha256 cellar: :any_skip_relocation, x86_64_linux: "ff671d887aac7235246b0b919c98e4b2cb2dae6a1aceb4f39df6e706789bb518" end depends_on "docbook-xsl" => :build depends_on "gettext" depends_on "perl" uses_from_macos "libxslt" resource "Locale::gettext" do url "https://cpan.metacpan.org/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz" sha256 "909d47954697e7c04218f972915b787bd1244d75e3bd01620bc167d5bbc49c15" end resource "Module::Build" do url "https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-0.4232.tar.gz" sha256 "67c82ee245d94ba06decfa25572ab75fdcd26a9009094289d8f45bc54041771b" end resource "Pod::Parser" do url "https://cpan.metacpan.org/authors/id/M/MA/MAREKR/Pod-Parser-1.65.tar.gz" sha256 "3ba7bdec659416a51fe2a7e59f0883e9c6a3b21bc9d001042c1d6a32d401b28a" end resource "SGMLS" do url "https://cpan.metacpan.org/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz" sha256 "550c9245291c8df2242f7e88f7921a0f636c7eec92c644418e7d89cfea70b2bd" end resource "TermReadKey" do url "https://cpan.metacpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz" sha256 "5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290" end resource "Text::WrapI18N" do url "https://cpan.metacpan.org/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz" sha256 "4bd29a17f0c2c792d12c1005b3c276f2ab0fae39c00859ae1741d7941846a488" end resource "Unicode::GCString" do url "https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz" sha256 "486762e4cacddcc77b13989f979a029f84630b8175e7fef17989e157d4b6318a" end resource "YAML::Tiny" do url "https://cpan.metacpan.org/authors/id/E/ET/ETHER/YAML-Tiny-1.73.tar.gz" sha256 "bc315fa12e8f1e3ee5e2f430d90b708a5dc7e47c867dba8dce3a6b8fbe257744" end resource "ExtUtils::CChecker" do url "https://cpan.metacpan.org/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz" sha256 "117736677e37fc611f5b76374d7f952e1970eb80e1f6ad5150d516e7ae531bf5" end resource "XS::Parse::Keyword::Builder" do url "https://cpan.metacpan.org/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.31.tar.gz" sha256 "e496168a4fcbcc61065ee64e0e2a657631b5750fd3c22d6361acf4d0a19b7f3d" end resource "Syntax::Keyword::Try" do url "https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.28.tar.gz" sha256 "ccad5f9d82a0b016252ed52da0270c80d54dc4289e09e3543d47a50b78fa02c8" end def install ENV.prepend_create_path "PERL5LIB", libexec/"lib/perl5" ENV.prepend_path "PERL5LIB", libexec/"lib" resources.each do |r| r.stage do if File.exist?("Makefile.PL") system "perl", "Makefile.PL", "INSTALL_BASE=#{libexec}", "NO_MYMETA=1" system "make", "install" else system "perl", "Build.PL", "--install_base", libexec system "./Build" system "./Build", "install" end end end ENV["XML_CATALOG_FILES"] = "#{etc}/xml/catalog" system "perl", "Build.PL", "--install_base", libexec system "./Build" system "./Build", "install" shell_scripts = %w[po4a-display-man po4a-display-pod] %w[msguntypot po4a po4a-display-man po4a-display-pod po4a-gettextize po4a-translate po4a-normalize po4a-updatepo].each do |cmd| rewrite_shebang detected_perl_shebang, libexec/"bin"/cmd unless shell_scripts.include? cmd (bin/cmd).write_env_script(libexec/"bin"/cmd, PERL5LIB: ENV["PERL5LIB"]) end man1.install Dir[libexec/"man/man1/{msguntypot.1p.gz,po4a*}"] man3.install Dir[libexec/"man/man3/Locale::Po4a::*"] man7.install Dir[libexec/"man/man7/*"] end test do # LaTeX (testpath/"en.tex").write <<~EOS \\documentclass[a4paper]{article} \\begin{document} Hello from Homebrew! \\end{document} EOS system bin/"po4a-updatepo", "-f", "latex", "-m", "en.tex", "-p", "latex.pot" assert_match "Hello from Homebrew!", (testpath/"latex.pot").read # Markdown (testpath/"en.md").write("Hello from Homebrew!") system bin/"po4a-updatepo", "-f", "text", "-m", "en.md", "-p", "text.pot" assert_match "Hello from Homebrew!", (testpath/"text.pot").read end end