- ##
- ## Copyright (c) 2006 Jason Dillon
- ##
- ## Licensed under the Apache License, Version 2.0 (the "License");
- ## you may not use this file except in compliance with the License.
- ## You may obtain a copy of the License at
- ##
- ## http://www.apache.org/licenses/LICENSE-2.0
- ##
- ## Unless required by applicable law or agreed to in writing, software
- ## distributed under the License is distributed on an "AS IS" BASIS,
- ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ## See the License for the specific language governing permissions and
- ## limitations under the License.
- ##
- ##
- ## $Id: config.py 77 2009-08-25 12:06:19Z mindwanderer $
- ##
- from p4spam import log
- class Configurator:
- def __init__(this):
- this.log = log.getLogger(this)
- def read(this, filename):
- assert filename != None
- this.log.debug("Reading configuration from file: %s" % filename)
- lnames = locals()
- gnames = globals()
- # Read/parse the configuration
- execfile(filename, gnames, lnames)
- this.dumpNamespace(lnames, "Locals")
- this.dumpNamespace(gnames, "Globals")
- this.validate(lnames)
- for key in lnames.keys():
- gnames[key] = lnames[key]
- def validate(this, namespace):
- pass
- def dumpNamespace(this, namespace, title):
- assert namespace != None
- assert title != None
- this.log.debug(title)
- for key in namespace.keys():
- this.log.debug(" %s = %s" % (key, namespace[key]))
- __configurator = Configurator()
- def read(filename):
- __configurator.read(filename)
- # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
- ##
- ## Configuration Defaults
- ##
- P4_CMD="p4"
- P4_PORT=None
- P4_USER=None
- # This is the actual command-line that will be used to execute `p4`
- P4_CMDLINE=(P4_CMD,)
- if P4_PORT != None:
- P4_CMDLINE.append('-p')
- P4_CMDLINE.append(P4_PORT)
- if P4_USER != None:
- P4_CMDLINE.append('-u')
- P4_CMDLINE.append(P4_USER)
- SMTP_HOST = "localhost:25"
- SPAM_ENABLED = False
- SPAM_USERS = True
- REPEAT = False
- SLEEPTIME = 60
- FORCE_STARTING_CHANGE = None
- SAVE_LAST_CHANGE_ENABLED = True
- MAX_DIFF_LINES = 1000
- MAX_DIFF_LINE_LENGTH = 1000
- MAX_SUBJECT_LINE_LENGTH = 200
- MAX_BATCH = 10
- # The format used for the subject line, needs to %s one for the change #, another for the comment
- SUBJECT_FORMAT = '[P4] #%s - %s'
- SUBJECT_NEW_LINES = 'strip'
- # If set to None, then the email from the change description will be used
- FROM_ADDR = None
- # How the email address from change description will be formatted
- FROM_ADDR_FORMAT = '"%(fullname)s (Perforce)" <%(email)s>'
- ADMIN_BCC_ADDR = None
- DISABLE_DIFF_FOR_FILETYPE = []
- LAST_CHANGELIST_COUNTER = 'p4spam.lastchange'
- CHANGE_LIST_URL = "http://perforce.mycompany.com/changelist.php?change=%s"
- PATH_VIEW_URL = "http://perforce.mycompany.com:8666/%s"
- FILE_HISTORY_URL = "http://perforce.mycompany.com/history.php?path=%s"
- JIRA_BROWSE_URL = "https://issues.mycompany.com/browse/%s"
- P4WEB_HOST = 'http://perforce.mycompany.com:8666'
- P4WEB_JOB_VIEW_URL = P4WEB_HOST + '/@md=d&cd=//&c=XH3@/%s?ac=111'
- P4WEB_CHANGELIST_ULK = P4WEB_HOST + '/@md=d&cd=//&c=vcZ@/%s?ac=10'
- USER_HEADER = None
- USER_BODY_HEADER = None
- USER_BODY_FOOTER = None
- HTML_STYLE = '''
- #msg DL { border : 1px #006 solid; background-color : #369; padding : 6px; color : #fff; }
- #msg DT { float : left; width : 6em; font-weight : bold; }
- #msg DL, #msg DT, #msg UL, #msg LI { font-family : arial,helvetica,sans-serif; font-size : 10pt; }
- h3 { font-family : arial,helvetica,sans-serif; font-size : 10pt; font-weight : bold; }
- #msg PRE { overflow : auto; white-space : normal; background-color : #ffc; border : 1px #fc0 solid; padding : 6px; }
- #msg UL, PRE, .diff { overflow : auto; }
- #patch h4 { font-family : arial,helvetica,sans-serif; font-size : 10pt; }
- #patch h4 { padding: 8px; background : #369; color : #fff; margin : 0; }
- #patch a { font-family : arial,helvetica,sans-serif; font-size : 10pt; }
- #patch a { padding: 8px; background : #369; color : #fff; margin : 0; }
- #patch .propset h4, #patch .binary h4 {margin: 0;}
- #patch pre {padding:0;line-height:1.2em;margin:0;}
- #patch .diff {background:#eeeeee;padding: 0 0 10px 0;}
- #patch .propset .diff, #patch .binary .diff {padding: 10px 0;}
- #patch span {display:block;padding:0 10px;}
- #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
- #patch .add {background:#ddffdd;}
- #patch .rem {background:#ffdddd;}
- #patch .lines, .info {color:#888888;background:#ffffff;}
- .diff { width : 100%; }
- '''
- SUBSCRIPTIONS = {}
- SUBSCRIPTIONS_ENABLED = True
- USER_REVIEWS_ENABLED = True
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7731 | Matthew Janulewicz | Adding P4Spam 1.1 code from http://p4spam.sourceforge.net/wiki/Main_Page "P4Spam is a P...erforce change review daemon which spits out sexy HTML-styled notification emails." « |
15 years ago |