diff options
| author | Jack Nagel | 2012-02-14 23:57:56 -0600 |
|---|---|---|
| committer | Jack Nagel | 2012-02-15 09:22:59 -0600 |
| commit | fba3d905eecbebabf1740824bb9d556b00b33c13 (patch) | |
| tree | 293c622bf0da52fea3a59da672cec25dd7295236 /Library/Formula/docbook.rb | |
| parent | bc82010bf1fdd6bf854f8cde926a769c59c13815 (diff) | |
| download | homebrew-fba3d905eecbebabf1740824bb9d556b00b33c13.tar.bz2 | |
docbook: keep XML catalog inside HOMEBREW_PREFIX
Rather than download a shell script and tell users to run it with
`sudo`, it is better to keep everything under Homebrew's control.
Luckily, the XML toolchain provides the environment variable
XML_CATALOG_FILES to allow files otehr than /etc/xml/catalog to be used.
So remove the shell script, and do all the work inside the formula
itself. When we're done, we just tell the user to add
HOMEBREW_PREFIX/etc/xml/catalog to their shell configuration, rather
than tell them to `sudo docbook-register`.
Rather than download the shell script, just download docbook 5.0, which
we need anyway.
This also simplifies the logic in a handful of docbook-using formula.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library/Formula/docbook.rb')
| -rw-r--r-- | Library/Formula/docbook.rb | 78 |
1 files changed, 46 insertions, 32 deletions
diff --git a/Library/Formula/docbook.rb b/Library/Formula/docbook.rb index b8d1f59e8..3ef3f7d7a 100644 --- a/Library/Formula/docbook.rb +++ b/Library/Formula/docbook.rb @@ -1,33 +1,39 @@ require 'formula' class Docbook < Formula - url 'https://gist.github.com/raw/462528/098ccc609b039cf5b6d11fcd9c8ef333c3861b65/docbook-register' - md5 '0fbc35a136190050de3598354655fd82' - version '5.0' homepage 'http://docbook.sourceforge.net/' - - def packages; [ - Docbookxml412, - Docbookxml42, - Docbookxml43, - Docbookxml44, - Docbookxml45, - Docbookxml50, - Docbookxsl, - ]; end + url 'http://www.docbook.org/xml/5.0/docbook-5.0.zip' + md5 '2411c19ed4fb141f3fa3d389fae40736' def install - bin.install 'docbook-register' + packages = [Docbookxml412, + Docbookxml42, + Docbookxml43, + Docbookxml44, + Docbookxml45, + Docbookxml50, + Docbookxsl] + + (etc+'xml').mkpath + system "xmlcatalog", "--noout", "--create", "#{etc}/xml/catalog" + packages.each do |pkg| - pkg.new.brew { |formula| formula.install } + pkg.new.brew do |f| + f.install + catalog = prefix+f.catalog+'catalog.xml' + system "xmlcatalog", "--noout", "--del", + "file://#{catalog}", "#{etc}/xml/catalog" + system "xmlcatalog", "--noout", "--add", "nextCatalog", + "", "file://#{catalog}", "#{etc}/xml/catalog" + end end end def caveats; <<-EOS.undent - To use the DocBook package in your XML toolchain, you need to - register it with the global XML catalog with this command: + To use the DocBook package in your XML toolchain, + you need to add the following to your ~/.bashrc: - sudo docbook-register + export XML_CATALOG_FILES="#{etc}/xml/catalog" EOS end end @@ -38,46 +44,54 @@ class Docbookxml < Formula docbook = Formula.factory 'docbook' (docbook.prefix+'docbook/xml'+version).install Dir['*'] end + + def catalog; 'docbook/xml/'+version; end end -class Docbookxml412 <Docbookxml + +class Docbookxml412 < Docbookxml url 'http://www.docbook.org/xml/4.1.2/docbkx412.zip' md5 '900d7609fb7e6d78901b357e4acfbc17' version '4.1.2' - homepage 'http://www.docbook.org/' end -class Docbookxml42 <Docbookxml + +class Docbookxml42 < Docbookxml url 'http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip' md5 '73fe50dfe74ca631c1602f558ed8961f' - homepage 'http://www.docbook.org/' end -class Docbookxml43 <Docbookxml + +class Docbookxml43 < Docbookxml url 'http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip' md5 'ab200202b9e136a144db1e0864c45074' - homepage 'http://www.docbook.org/' end -class Docbookxml44 <Docbookxml + +class Docbookxml44 < Docbookxml url 'http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip' md5 'cbb04e9a700955d88c50962ef22c1634' - homepage 'http://www.docbook.org/' end -class Docbookxml45 <Docbookxml + +class Docbookxml45 < Docbookxml url 'http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip' md5 '03083e288e87a7e829e437358da7ef9e' - homepage 'http://www.docbook.org/' end -class Docbookxml50 <Docbookxml + +class Docbookxml50 < Docbookxml url 'http://www.docbook.org/xml/5.0/docbook-5.0.zip' md5 '2411c19ed4fb141f3fa3d389fae40736' - homepage 'http://www.docbook.org/' end + class Docbookxsl < Formula + homepage 'http://docbook.sourceforge.net/' url 'http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.76.1/docbook-xsl-1.76.1.tar.bz2' md5 'b5340507cb240cc7ce00632b9c40bff5' - homepage 'http://docbook.sourceforge.net/' + def install doc_files = %w[AUTHORS BUGS README RELEASE-NOTES.txt TODO VERSION NEWS COPYING] - xsl_files = %w[catalog.xml common eclipse epub extensions fo highlighting html htmlhelp images javahelp lib manpages params profiling roundtrip slides template tools website xhtml xhtml-1_1] + xsl_files = %w[catalog.xml common eclipse epub extensions fo highlighting html + htmlhelp images javahelp lib manpages params profiling roundtrip + slides template tools website xhtml xhtml-1_1] docbook = Formula.factory 'docbook' (docbook.prefix+'docbook/xsl'+version).install xsl_files + doc_files end + + def catalog; 'docbook/xsl/'+version; end end |
