Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

148 lines (131 sloc) 5.178 kB
#!/usr/bin/env python
import os, glob, shutil
from setuptools import setup, Extension
from sonata.version import version
def capture(cmd):
return os.popen(cmd).read().strip()
def removeall(path):
if not os.path.isdir(path):
return
files=os.listdir(path)
for x in files:
fullpath=os.path.join(path, x)
if os.path.isfile(fullpath):
f=os.remove
rmgeneric(fullpath, f)
elif os.path.isdir(fullpath):
removeall(fullpath)
f=os.rmdir
rmgeneric(fullpath, f)
def rmgeneric(path, __func__):
try:
__func__(path)
except OSError, (errno, strerror):
pass
# Create mo files:
if not os.path.exists("mo/"):
os.mkdir("mo/")
langs = (l[:-3] for l in os.listdir('po') if l.endswith('po')
and l != "messages.po")
for lang in langs:
pofile = os.path.join("po", "%s.po" % lang)
modir = os.path.join("mo", lang)
mofile = os.path.join(modir, "sonata.mo")
if not os.path.exists(modir):
os.mkdir(modir)
print "generating", mofile
os.system("msgfmt %s -o %s" % (pofile, mofile))
versionfile = open("sonata/genversion.py","wt")
versionfile.write("""
# generated by setup.py
VERSION = 'v%s'
""" % version)
versionfile.close()
tests_require = [
'unittest2',
]
setup(name='Sonata',
version=version,
description='GTK+ client for the Music Player Daemon (MPD).',
author='Scott Horowitz',
author_email='stonecrest@gmail.com',
url='http://sonata.berlios.de/',
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: X11 Applications',
'Intended Audience :: End Users/Desktop',
'License :: GNU General Public License (GPL)',
'Operating System :: Linux',
'Programming Language :: Python',
'Topic :: Multimedia :: Sound :: Players',
],
packages=["sonata", "sonata.plugins"],
package_dir={"sonata": "sonata/"},
ext_modules=[Extension(
"mmkeys", ["mmkeys/mmkeyspy.c", "mmkeys/mmkeys.c", "mmkeys/mmkeysmodule.c"],
extra_compile_args=capture("pkg-config --cflags gtk+-2.0 pygtk-2.0").split(),
extra_link_args=capture("pkg-config --libs gtk+-2.0 pygtk-2.0").split()
),],
data_files=[('share/sonata', ['README.old', 'CHANGELOG', 'TODO', 'TRANSLATORS']),
('share/applications', ['sonata.desktop']),
('share/pixmaps', glob.glob('sonata/pixmaps/*')),
('share/man/man1', ['sonata.1']),
('share/locale/de/LC_MESSAGES', ['mo/de/sonata.mo']),
('share/locale/pl/LC_MESSAGES', ['mo/pl/sonata.mo']),
('share/locale/ru/LC_MESSAGES', ['mo/ru/sonata.mo']),
('share/locale/fr/LC_MESSAGES', ['mo/fr/sonata.mo']),
('share/locale/zh_CN/LC_MESSAGES', ['mo/zh_CN/sonata.mo']),
('share/locale/sv/LC_MESSAGES', ['mo/sv/sonata.mo']),
('share/locale/es/LC_MESSAGES', ['mo/es/sonata.mo']),
('share/locale/fi/LC_MESSAGES', ['mo/fi/sonata.mo']),
('share/locale/nl/LC_MESSAGES', ['mo/nl/sonata.mo']),
('share/locale/it/LC_MESSAGES', ['mo/it/sonata.mo']),
('share/locale/cs/LC_MESSAGES', ['mo/cs/sonata.mo']),
('share/locale/da/LC_MESSAGES', ['mo/da/sonata.mo']),
('share/locale/ca/LC_MESSAGES', ['mo/ca/sonata.mo']),
('share/locale/ar/LC_MESSAGES', ['mo/ar/sonata.mo']),
('share/locale/pt_BR/LC_MESSAGES', ['mo/pt_BR/sonata.mo']),
('share/locale/et/LC_MESSAGES', ['mo/et/sonata.mo']),
('share/locale/tr/LC_MESSAGES', ['mo/tr/sonata.mo']),
('share/locale/be@latin/LC_MESSAGES', ['mo/be@latin/sonata.mo']),
('share/locale/el_GR/LC_MESSAGES', ['mo/el_GR/sonata.mo']),
('share/locale/sk/LC_MESSAGES', ['mo/sk/sonata.mo']),
('share/locale/ja/LC_MESSAGES', ['mo/ja/sonata.mo']),
('share/locale/sl/LC_MESSAGES', ['mo/sl/sonata.mo']),
('share/locale/zh_TW/LC_MESSAGES', ['mo/zh_TW/sonata.mo']),
('share/locale/uk/LC_MESSAGES', ['mo/uk/sonata.mo'])],
entry_points={
'console_scripts': [
'sonata=sonata.launcher:run',
]
},
test_suite='sonata.tests',
tests_require=tests_require,
extras_require={
'test': tests_require,
},
)
# Cleanup (remove /build, /mo, and *.pyc files:
print "Cleaning up..."
try:
removeall("build/")
os.rmdir("build/")
except:
pass
try:
removeall("mo/")
os.rmdir("mo/")
except:
pass
try:
for f in os.listdir("."):
if os.path.isfile(f):
if os.path.splitext(os.path.basename(f))[1] == ".pyc":
os.remove(f)
except:
pass
try:
os.remove("sonata/genversion.py")
os.remove("sonata/genversion.pyc")
except:
pass
Jump to Line
Something went wrong with that request. Please try again.