From ffeb4885db82c1cb52ed98531e26fb80a70aeb65 Mon Sep 17 00:00:00 2001 From: David Glick Date: Wed, 2 May 2012 23:42:10 -0700 Subject: [PATCH] streamline installation --- README.rst | 17 +++++++---------- SublimePythonCoverage.py | 31 +++++++++++++++++++++++++++++-- setup.py | 28 ---------------------------- 3 files changed, 36 insertions(+), 40 deletions(-) delete mode 100644 setup.py diff --git a/README.rst b/README.rst index 9c4a2b3..3852c1a 100644 --- a/README.rst +++ b/README.rst @@ -6,18 +6,15 @@ based on the output of Ned Batchelder's Installation ------------ -1. Use git to check out ``SublimePythonCoverage`` - into your Sublime Text 2 ``Packages`` directory. +Set up +`Sublime Package Control `_ +if you don't have it yet. - On OS X:: +Go to Tools > Command Palette. +Type ``Package Control: Install Package`` and hit enter. +Type ``SublimePythonCoverage`` and hit enter. +It may take a bit to install as it needs to fetch its dependency, coverage.py. - $ cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages - $ git clone git://github.com/davisagli/SublimePythonCoverage.git - -2. Install our dependency, ``coverage.py``:: - - $ cd SublimePythonCoverage - $ python setup.py install Usage ----- diff --git a/SublimePythonCoverage.py b/SublimePythonCoverage.py index 5edfaa0..f277f76 100644 --- a/SublimePythonCoverage.py +++ b/SublimePythonCoverage.py @@ -1,8 +1,35 @@ +# bootstrap import os -import sublime, sublime_plugin +os.chdir(os.path.dirname(__file__)) +if not os.path.exists(os.path.join(os.getcwd(), 'coverage')): + # Fetch coverage.py + print 'SublimePythonCoverage installing coverage.py.' -from coverage import coverage + from StringIO import StringIO + import tarfile + import urllib + from hashlib import md5 + + SOURCE = 'http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz' + MD5SUM = '410d4c8155a4dab222f2bc51212d4a24' + + payload = urllib.urlopen(SOURCE).read() + if md5(payload).hexdigest() != MD5SUM: + raise ImportError('Invalid checksum.') + + tar = tarfile.open(mode='r:gz', fileobj=StringIO(payload)) + for m in tar.getmembers(): + if not m.name.startswith('coverage-3.5.1/coverage/'): + continue + m.name = '/'.join(m.name.split('/')[2:]) + tar.extract(m, 'coverage') + print 'SublimePythonCoverage successfully installed coverage.py.' +# end bootstrap + + +import sublime, sublime_plugin +from coverage import coverage PLUGIN_FILE = os.path.abspath(__file__) diff --git a/setup.py b/setup.py deleted file mode 100644 index 382084a..0000000 --- a/setup.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Manual installation of coverage package.""" - -from StringIO import StringIO -import sys -import tarfile -import urllib -from hashlib import md5 - -SOURCE = 'http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz' -MD5SUM = '410d4c8155a4dab222f2bc51212d4a24' - -if __name__ == '__main__': - if len(sys.argv) != 2 or sys.argv[1] != 'install': - print 'Usage: setup.py install' - sys.exit() - - payload = urllib.urlopen(SOURCE).read() - if md5(payload).hexdigest() != MD5SUM: - raise ValueError('Invalid checksum.') - - tar = tarfile.open(mode='r:gz', fileobj=StringIO(payload)) - for m in tar.getmembers(): - if not m.name.startswith('coverage-3.5.1/coverage/'): - continue - m.name = '/'.join(m.name.split('/')[2:]) - tar.extract(m, 'coverage') - - print 'coverage successfully installed.'