X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0f475e8aa9e236b097411bfc9ad9db7309a43b1a..30e24d9dd5a5abf1c9a375ea259eb239b122b7f7:/wxPython/wxaddons/setup.py diff --git a/wxPython/wxaddons/setup.py b/wxPython/wxaddons/setup.py index 8f136a7fd8..266029b0d1 100644 --- a/wxPython/wxaddons/setup.py +++ b/wxPython/wxaddons/setup.py @@ -1,7 +1,9 @@ import distutils.command.install_lib +import distutils.command.install_data import distutils.command.install -import os +import os, string from distutils.core import setup +from user import home # this gives us the user's home dir on all platforms class wxaddon_install_lib(distutils.command.install_lib.install_lib): """need to change self.install_dir to the actual library dir""" @@ -10,22 +12,47 @@ class wxaddon_install_lib(distutils.command.install_lib.install_lib): self.install_dir = os.path.join(getattr(install_cmd, 'install_purelib'), "wxaddons") return distutils.command.install_lib.install_lib.run(self) +class wxaddon_install_data(distutils.command.install_data.install_data): + def run(self): + self.install_dir = os.path.join(home, ".wxaddons_data", self.distribution.get_name()) + if not os.path.exists(self.install_dir): + os.makedirs(self.install_dir) + return distutils.command.install_data.install_data.run(self) + class wxaddon_install(distutils.command.install.install): def run(self): result = distutils.command.install.install.run(self) - metadata_file = 'addon.info' - if os.path.exists(metadata_file): - import wx - import email - fields = email.message_from_string(open(metadata_file).read()) - config = wx.Config("wxaddons-receipts") - config.SetPath(fields['name']) - for field in fields._headers: - config.Write(field[0], field[1]) + import wx + config = wx.Config("wxaddons-receipts") + config.SetPath(self.distribution.get_name()) + config.Write("Version", str(self.distribution.get_version())) + config.Write("Summary", self.distribution.get_description()) + config.Write("Home-page", self.distribution.get_url()) + + # NB: Although self.distribution has get_author() and get_author_email() + # methods, get_contact* returns either author or maintainer, and I think + # either is suitable for our purposes. + config.Write("Author", self.distribution.get_contact()) + config.Write("Author-email", self.distribution.get_contact_email()) + config.Write("License", self.distribution.get_license()) + + keywords = string.join( self.distribution.get_keywords(), ';') + if keywords: + config.Write('Keywords', keywords) + + platforms = string.join( self.distribution.get_platforms(), ';') + if platforms: + config.Write('Platforms', platforms ) + + classifiers = string.join( self.distribution.get_classifiers(), ';') + if classifiers: + config.Write('Classifiers', classifiers ) + return result def wxaddon(**kwargs): kwargs['cmdclass'] = {'install_lib' : wxaddon_install_lib, - 'install' : wxaddon_install } + 'install' : wxaddon_install, + 'install_data' : wxaddon_install_data } setup(**kwargs) \ No newline at end of file