]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wxaddons/setup.py
Adding overview docs and a couple tweaks to the demo.
[wxWidgets.git] / wxPython / wxaddons / setup.py
index 8f136a7fd800e350756f120a106810bbb1972406..266029b0d16f5eaf67b5608823205ab0639b8ebb 100644 (file)
@@ -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