Ignore:
Timestamp:
05/16/06 11:45:16 (18 years ago)
Author:
bas
Message:

EmailtoTracScript?:

debian/changelog:

  • New version 0.6

ChangeLog?:

  • Read it

delete_spam.py.in:

  • Ported to 0.9 and 0.10
File:
1 edited

Legend:

Unmodified
Added
Removed
  • emailtotracscript/trunk/delete_spam.py.in

    r55 r69  
    2626
    2727Usage :
    28         delete_spam [ -f <configfile> ]
     28        delete_spam [ -f/--file <configfile> -p/--project <name>]
    2929
    3030defaults:
     
    3434        $Id$
    3535"""
    36 from trac import Environment, Ticket
    3736
    3837import os
     
    4241import ConfigParser
    4342
    44 def ReadConfig(file):
     43trac_default_version = 0.9
     44
     45def ReadConfig(file, name):
    4546        """
    4647        Parse the config file
     
    5253
    5354        config = ConfigParser.ConfigParser()
     55        try:
     56                config.read(file)
     57        except ConfigParser.MissingSectionHeaderError,detail:
     58                print detail
     59                sys.exit(1)
    5460
    55         try:
    56           config.read(file)
    57         except ConfigParser.MissingSectionHeaderError,detail:
    58           print detail
    59           sys.exit(1)
     61        # Use given project name else use defaults
     62        #
     63        if name:
     64                if not config.has_section(name):
     65                        print "Not an valid project name: %s" %name
     66                        print "Valid names: %s" %config.sections()
     67                        sys.exit(1)
    6068
    61         defaults = config.defaults()
    62         if not defaults.has_key('project'):
    63                 print 'You have define the location of your trac project, eg:'
    64                 print '\t project: /var/trac/<projectname>'
    65                 sys.exit(1)
    66          
    67         return defaults
     69                project =  dict()
     70                for option in  config.options(name):
     71                        project[option] = config.get(name, option)
    6872
     73        else:
     74                project = config.defaults()
     75
     76        return project
    6977
    7078def delete_spam(project, debug):
    71                         env = Environment.Environment(project, create=0)
     79                        env = Environment(project, create=0)
    7280                        db = env.get_db_cnx()
    7381                       
     
    98106        # Default config file
    99107        #
    100         configfile = '/etc/email2trac.conf'
     108        configfile = '@email2trac_conf@'
    101109
    102110        try:
    103                  opts, args = getopt.getopt(sys.argv[1:], 'hf:', ['help', 'file='])
     111                 opts, args = getopt.getopt(sys.argv[1:], 'hf:p:', ['help', 'file=', 'project='])
    104112        except getopt.error,detail:
    105113                print __doc__
     
    107115                sys.exit(1)
    108116
     117        project_name = None
    109118        for opt,value in opts:
    110119                if opt in [ '-h', '--help']:
     
    113122                elif opt in ['-f', '--file']:
    114123                        configfile = value
     124                elif opt in ['-p', '--project']:
     125                        project_name = value
    115126       
    116         settings = ReadConfig(configfile)
     127        settings = ReadConfig(configfile, project_name)
     128        if not settings.has_key('project'):
     129                print __doc__
     130                print 'No project defined in config file, eg:\n\t project: /data/trac/bas'
     131                sys.exit(1)
     132
     133        if settings.has_key('trac_version'):
     134                version = float(settings['trac_version'])
     135        else:
     136                version = trac_default_version
     137
     138
     139        if version == 0.8:
     140                from trac.Environment import Environment
     141        else:
     142                from trac.env import Environment
     143
    117144        delete_spam(settings['project'], int(settings['debug']))
    118145        print 'Spam is deleted succesfully..'
Note: See TracChangeset for help on using the changeset viewer.