From fe7f58c6fa5b8e5daa3ad5cada872305d379f1d8 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 22 Mar 2010 23:44:17 +0100 Subject: [PATCH] Add setup.py with friends --- MANIFEST.in | 4 ++++ bin/mopidy | 5 +++++ setup.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 MANIFEST.in create mode 100644 bin/mopidy create mode 100644 setup.py diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..6235b2c8 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,4 @@ +include COPYING +include *.rst +include requirements*.txt +recursive-include docs *.rst diff --git a/bin/mopidy b/bin/mopidy new file mode 100644 index 00000000..0472518e --- /dev/null +++ b/bin/mopidy @@ -0,0 +1,5 @@ +#! /usr/bin/env python + +if __name__ == '__main__': + from mopidy.__main__ import main + main() diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..8d3389a5 --- /dev/null +++ b/setup.py @@ -0,0 +1,58 @@ +from distutils.core import setup +from distutils.command.install import INSTALL_SCHEMES +import os + +from mopidy import get_version + +def fullsplit(path, result=None): + """ + Split a pathname into components (the opposite of os.path.join) in a + platform-neutral way. + """ + if result is None: + result = [] + head, tail = os.path.split(path) + if head == '': + return [tail] + result + if head == path: + return result + return fullsplit(head, [tail] + result) + +# Tell distutils to put the data_files in platform-specific installation +# locations. See here for an explanation: +# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb +for scheme in INSTALL_SCHEMES.values(): + scheme['data'] = scheme['purelib'] + +# Compile the list of packages available, because distutils doesn't have +# an easy way to do this. +packages, data_files = [], [] +root_dir = os.path.dirname(__file__) +if root_dir != '': + os.chdir(root_dir) +project_dir = 'mopidy' + +for dirpath, dirnames, filenames in os.walk(project_dir): + # Ignore dirnames that start with '.' + for i, dirname in enumerate(dirnames): + if dirname.startswith('.'): + del dirnames[i] + if '__init__.py' in filenames: + packages.append('.'.join(fullsplit(dirpath))) + elif filenames: + data_files.append([dirpath, + [os.path.join(dirpath, f) for f in filenames]]) + +setup( + name='Mopidy', + version=get_version(), + author='Stein Magnus Jodal', + author_email='stein.magnus@jodal.no', + packages=packages, + data_files=data_files, + scripts=['bin/mopidy'], + url='http://www.mopidy.com/', + license='GPLv2', + description='MPD server with Spotify support', + long_description=open('README.rst').read(), +)