## ## 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: describe.py 26 2006-04-15 06:25:53Z user57 $ ## from p4spam.perforce import P4Field, P4Code, P4Exception from p4spam.perforce.commands import ResultSupport, SingleResultCommand COMMAND_NAME = "describe" ## ## DescribeCommand ## class DescribeCommand(SingleResultCommand): def __init__(this, p4): SingleResultCommand.__init__(this, COMMAND_NAME, p4) def createResult(this, entry): return DescriptionInfo(entry) ## ## DescriptionInfo ## class DescriptionInfo(ResultSupport): def __init__(this, entry): if entry[P4Field.CODE] == P4Code.STAT: this.status = entry['status'] this.client = entry['client'] this.user = entry['user'] this.change = entry['change'] this.desc = entry['desc'] this.time = int(entry['time']) ## ## TODO: Include jobstatus ## ## ## TODO: Inlcude job<n> ## files = [] i = 0 try: while True: files.append(FileInfo(entry, i)) i = i + 1 except KeyError: pass this.files = files else: assert "Unexpected data: %s" % str(entry) def toString(this): return "%s %s %s %s %s %s %s" % ( this.status, this.client, this.user, this.change, this.desc, this.time, this.files ) ## ## FileInfo ## class FileInfo(ResultSupport): def __init__(this, entry, i): if entry[P4Field.CODE] == P4Code.STAT: this.i = i this.action = entry["action%s" % i] this.path = entry["depotFile%s" % i] this.rev = int(entry["rev%s" % i]) this.type = entry["type%s" % i] else: assert "Unexpected data: %s" % str(entry) def toString(this): return "[%s] %s %s#%s (%s)" % ( this.i, this.action, this.path, this.rev, this.type ) ## ## perforce.commands factory interface ## def create(p4): return DescribeCommand(p4)
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7731 | Matthew Janulewicz |
Adding P4Spam 1.1 code from http://p4spam.sourceforge.net/wiki/Main_Page "P4Spam is a Perforce change review daemon which spits out sexy HTML-styled notification emails." |