aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorJannis Leidel2009-10-20 21:26:13 +0200
committerMax Howell2009-12-02 12:53:00 +0000
commitf946b720423a32123d7bea61d699640f86bc33a3 (patch)
tree8b6d78754636aae76d816579182f33409688d95d /Library/Formula
parentbd437843a26d501083fb66c64fad0cc601724cbe (diff)
downloadhomebrew-f946b720423a32123d7bea61d699640f86bc33a3.tar.bz2
Added pip and setuptools formula
As discussed on IRC this simplifies the Python packaging strategy of Homebrew. It's a modified version of the hints given on http://bit.ly/HomebrewPython and renders them unnecessary. setuptools and pip will be installed separately from Python's site-packages (e.g. "#{prefix}/lib/pip") but will install other packages in the Python's site-packages directory and *not* inside their own directories. In case the Python brew is removed or unlinked all packages installed with pip will be removed or unlinked, too. When using the non-framework install of Python (e.g. not the OS X' default) these restrictions also apply in case of the installation of a new version of Python.
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/pip.rb38
-rw-r--r--Library/Formula/setuptools.rb27
2 files changed, 65 insertions, 0 deletions
diff --git a/Library/Formula/pip.rb b/Library/Formula/pip.rb
new file mode 100644
index 000000000..10333afae
--- /dev/null
+++ b/Library/Formula/pip.rb
@@ -0,0 +1,38 @@
+require 'formula'
+
+class Pip <Formula
+ url 'http://pypi.python.org/packages/source/p/pip/pip-0.6.1.tar.gz'
+ homepage 'http://pip.openplans.org/'
+ md5 '7560e3055c66afb99ac4a7892389a237'
+
+ depends_on 'setuptools'
+
+ def install
+ dest = "#{prefix}/lib/pip"
+ system "python", "setup.py", "install", "--prefix=#{prefix}",
+ "--install-purelib=#{dest}"
+ # make sure we use the right python (distutils rewrites the shebang)
+ # also adds the pip lib path to the PYTHONPATH
+ script = DATA.read
+ script.sub! "HOMEBREW_PIP_PATH", dest
+ (bin+'pip').unlink
+ (bin+'pip').write script
+ end
+
+ def caveats
+ "pip installs packages. Python packages.\n"+
+ "Run 'pip help' to see a list of commands."
+ end
+end
+
+__END__
+#!/usr/bin/env python
+"""
+This is the Homebrew pip wrapper
+"""
+import sys
+sys.path.insert(0, 'HOMEBREW_PIP_PATH')
+from pip import main
+
+if __name__ == '__main__':
+ main() \ No newline at end of file
diff --git a/Library/Formula/setuptools.rb b/Library/Formula/setuptools.rb
new file mode 100644
index 000000000..0cb91342f
--- /dev/null
+++ b/Library/Formula/setuptools.rb
@@ -0,0 +1,27 @@
+require 'formula'
+
+class Setuptools <Formula
+ url 'http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz'
+ homepage 'http://pypi.python.org/pypi/setuptools'
+ md5 '7df2a529a074f613b509fb44feefe74e'
+ version '0.6c11'
+
+ def install
+ dest=prefix+'lib/setuptools'
+ FileUtils.mkdir_p dest
+ ENV.append 'PYTHONPATH', dest, ":"
+ system "python", "setup.py", "install", "--prefix=#{prefix}", "--install-lib=#{dest}"
+
+ site_packages = `python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"`.chomp
+ pth = Pathname.new site_packages+'/homebrew.pth'
+ ohai "Writing #{pth} to enable setuptools"
+ data = DATA.read
+ data.sub! "HOMEBREW_SETUPTOOLS_PATH", dest
+ pth.unlink if pth.exist?
+ pth.write data
+ end
+end
+
+__END__
+# Please dont't modify this file, Homebrew will overwrite it.
+import site; site.addsitedir('HOMEBREW_SETUPTOOLS_PATH')