Changeset 485

Show
Ignore:
Timestamp:
2006-03-12 16:57:07 (2 months ago)
Author:
coderanger
Message:

HackInstallPlugin:

New plugins are now installed as disabled.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • hackinstallplugin/0.9/hackinstall/web_ui.py

    r484 r485  
    99from webadmin.web_ui import IAdminPageProvider 
    1010from db_default import default_table 
    11 import os, re, xmlrpclib, urlparse, urllib2, zipfile 
     11import os, re, xmlrpclib, urlparse, urllib2, zipfile, pkg_resources, zipimport 
    1212 
    1313__all__ = ['HackInstallPlugin'] 
     
    3030            else: 
    3131                raise TracError, 'HackInstall is unable to determine what version of Trac you are using, please manually configure it.' 
    32         self.username = self.config.get('hackinstall','username',default='').strip() 
     32        self.username = self.config.get('hackinstall','username',default='TracHacks').strip() 
    3333        self.password = self.config.get('hackinstall','password',default='').strip() 
    3434         
    3535        # Figure out the XML-RPC URL 
    36         if self.username == None
     36        if self.username == ''
    3737            self.rpc_url = self.url + '/xmlrpc' 
    3838        else: 
    3939            urlparts = list(urlparse.urlsplit(self.url)) 
    40             urlparts[1] = '%s:%s@%s' % (self.username, self.password, urlparts[1]) 
     40            urlparts[1] = '%s%s@%s' % (self.username, ['',':'+self.password][self.password==''], urlparts[1]) 
    4141            self.rpc_url = urlparse.urlunsplit(urlparts) + '/login/xmlrpc' 
    4242 
     
    143143        todir = os.path.join(self.env.path,'plugins') 
    144144        for d in os.listdir(fromdir): 
     145            fromegg = os.path.join(fromdir,d) 
     146            toegg = os.path.join(todir,d) 
    145147            if d.endswith('.egg'): 
    146                 os.rename(os.path.join(fromdir,d),os.path.join(todir,d)) 
    147         self.config.set('components',name.lower()+'.*','disabled') 
    148         self.config.save() 
     148                os.rename(fromegg,toegg) 
     149                dist = pkg_resources.Distribution.from_filename(toegg,pkg_resources.EggMetadata(zipimport.zipimporter(toegg))) 
     150                if dist.has_metadata('trac_plugin.txt'): 
     151                    self.log.debug('trac_plugin.txt file detected') 
     152                    for line in dist.get_metadata_lines('trac_plugin.txt'): 
     153                        self.config.set('components',line.strip()+'.*','disabled') 
     154                else: 
     155                    self.log.debug('Entry point plugin detected, but not supported quite yet') 
     156                self.config.save() 
    149157 
    150158    def _download_hack(self, name): 
     
    173181    def _clean_hack(self, name): 
    174182        """Remove all intermediary files used during installation.""" 
     183        os.remove(os.path.join(self.builddir,name.lower()+'.zip')) 
    175184 
    176185    def _get_hacks(self, type):