aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorBaptiste Fontaine2014-05-01 00:56:15 +0200
committerAdam Vandenberg2014-06-21 07:20:05 -0700
commitf676ee184c3a29ca14c979218a92e3f1996a54ea (patch)
treebdfb1bdcc63e7670f25743f9db34baa138301986 /Library/Formula
parent34e1da09f6f2dd0da2b069622c644e17ed070d65 (diff)
downloadhomebrew-f676ee184c3a29ca14c979218a92e3f1996a54ea.tar.bz2
mat 0.5.2
Closes #28871. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/mat.rb129
1 files changed, 129 insertions, 0 deletions
diff --git a/Library/Formula/mat.rb b/Library/Formula/mat.rb
new file mode 100644
index 000000000..d2c3b8774
--- /dev/null
+++ b/Library/Formula/mat.rb
@@ -0,0 +1,129 @@
+require "formula"
+
+# OSX has case-insensitive file names, and the Mat archive contains a 'MAT'
+# directory *and* a 'mat' file. `tar xf` will fail on it, so we rename 'mat'
+# into 'mat-cli' here.
+class MatDownloadStrategy < CurlDownloadStrategy
+ def stage
+ if tarball_path.compression_type == :xz
+ with_system_path do
+ safe_system "#{xzpath} -dc \"#{tarball_path}\" | tar xf - -s ',/mat$,/mat-cli,'"
+ end
+ chdir
+ else
+ super
+ end
+ end
+end
+
+class Mat < Formula
+ homepage "https://mat.boum.org/"
+ url "https://mat.boum.org/files/mat-0.5.2.tar.xz", :using => MatDownloadStrategy
+ sha1 "932ac13863c994ca8874e3271f817efd879e28c3"
+
+ depends_on :python
+ depends_on 'coreutils'
+ depends_on 'poppler'
+ depends_on 'intltool' => :build
+ depends_on 'gettext' => :build
+
+ depends_on 'exiftool' => :optional
+
+ option 'with-massive-audio', 'Enable massive audio format support'
+
+ # mat relies on `shred`, which is called `gshred` on OSX with coreutils, and
+ # import the 'gi' python module which is not available here.
+ # Fixed upstream for next version.
+ patch :DATA
+
+ resource 'hachoir-core' do
+ url 'https://pypi.python.org/packages/source/h/hachoir-core/hachoir-core-1.3.3.tar.gz'
+ sha1 'e1d3b5da7d57087c922942b7653cb3b195c7769f'
+ end
+
+ resource 'hachoir-parser' do
+ url 'https://pypi.python.org/packages/source/h/hachoir-parser/hachoir-parser-1.3.4.tar.gz'
+ sha1 '8433e1598b1e8d9404e6978117a203775e68c075'
+ end
+
+ resource 'pdfrw' do
+ url 'https://pypi.python.org/packages/source/p/pdfrw/pdfrw-0.1.tar.gz'
+ sha1 '9824ad502ecb2bf093fd8727fd7fa2b524140e41'
+ end
+
+ resource 'distutils-extra' do
+ url 'https://launchpad.net/python-distutils-extra/trunk/2.38/+download/python-distutils-extra-2.38.tar.gz'
+ sha1 'db9ac81daf3e069b8838ae6d379abac2f0094663'
+ end
+
+ if build.with? 'massive-audio'
+ resource 'mutagen' do
+ url 'https://pypi.python.org/packages/source/m/mutagen/mutagen-1.22.tar.gz'
+ sha1 '9bdd4a7a491008e62d140d83fc31d355577f94e7'
+ end
+ end
+
+ def install
+ ENV.prepend_create_path 'PYTHONPATH', libexec/'lib/python2.7/site-packages'
+ install_args = [ "setup.py", "install", "--prefix=#{libexec}" ]
+
+ resource('hachoir-core').stage { system "python", *install_args }
+ resource('hachoir-parser').stage { system "python", *install_args }
+ resource('pdfrw').stage { system "python", *install_args }
+ resource('distutils-extra').stage { system "python", *install_args }
+ if build.with? 'massive-audio'
+ resource('mutagen').stage { system "python", *install_args }
+ end
+
+ inreplace 'setup.py' do |s|
+ s.gsub!("'mat'", "'mat-cli'")
+ end
+
+ system "python", "setup.py", "install", "--prefix=#{prefix}"
+
+ # move executable back to its real name
+ mv bin/'mat-cli', bin/'mat'
+
+ man1.install Dir['*.1']
+
+ bin.env_script_all_files(libexec/'bin', :PYTHONPATH => ENV['PYTHONPATH'])
+ end
+
+ test do
+ system "#{bin}/mat", "-l"
+ system "touch", "foo"
+ system "tar", "cf", "foo.tar", "foo"
+ system "#{bin}/mat", "-c", "foo.tar"
+ end
+
+ def caveats; <<-EOS.undent
+ MAT was built without PDF support nor GUI.
+ EOS
+ end
+end
+__END__
+diff --git a/mat-0.5.2/_MAT/mat.py b/mat-0.5.2/_MAT/mat.py
+index 5b1fbda..5ea2b22 100644
+--- a/MAT/mat.py
++++ b/MAT/mat.py
+@@ -120,7 +120,7 @@ def secure_remove(filename):
+ raise MAT.exceptions.UnableToWriteFile
+
+ try:
+- if not subprocess.call(['shred', '--remove', filename]):
++ if not subprocess.call(['gshred', '--remove', filename]):
+ return True
+ else:
+ raise OSError
+diff --git a/mat-0.5.2/_MAT/strippers.py b/mat-0.5.2/_MAT/strippers.py
+index aea98da..42ea8fc 100644
+--- a/MAT/strippers.py
++++ b/MAT/strippers.py
+@@ -3,7 +3,6 @@
+
+ import archive
+ import audio
+-import gi
+ import images
+ import logging
+ import mat