#
# Copyright 2005 Perforce Software. All rights reserved.
#
#
# Site specific paths
# P4BINDIR specifies where the trigger routines are located
# P4LOGDIR specifies where to write the log files
#
P4_BIN="EJP_P4_BIN"
P4BINDIR="EJP_TRIGGERS_DIR/"
P4LOGDIR="EJP_TRIGGERS_LOG_DIR/"
P4PORT="EJP_P4D_PORT"
P4USER="EJP_P4USER"
P4SPECSUFFIX="EJP_P4SPEC_SUFFIX"
#
# The email address from which the notifications are to be sent
#
P4ADMINEMAIL="ejpadmin@perforce.com"
#
# Site specific jobspec fields
#
# P4HISTORYFIELD specifies which field to use for change history
# P4CLOSEDBYFIELD specifies the field for saving the closing userid
# P4STATUSFIELD specifies the field for current job status
# P4RELATEDJOBSFIELD specifies the field for listing related jobids
# P4REPORTEDBYFIELD specifies the field for saving the reporting userid
# P4OWNEDBYFIELD specifies the field for current job ownerid
# P4INTERESTEDINFIELD specifies the field for listing userids to notify
# P4DESCRIPTIONFIELD specifies the field for current description of job
# P4DUPLICATEOFFIELD specifies the field for saving jobid of which this dups
# P4DUPLICATEJOBSFIELD specifies the field for listing duplicate jobids
# P4FIXESFIELD specifies the field for listing changelists
#
P4HISTORYFIELD = "History" # Automatically READ-ONLY
P4CLOSEDBYFIELD = "ClosedBy" # Automatically READ-ONLY
P4STATUSFIELD = "Status"
P4RELATEDJOBSFIELD = "RelatedJobs"
P4REPORTEDBYFIELD = "ReportedBy"
P4OWNEDBYFIELD = "OwnedBy"
P4INTERESTEDINFIELD = "InterestedIn"
P4DESCRIPTIONFIELD = "Description"
P4DUPLICATEOFFIELD = "DuplicateOf"
P4DUPLICATEJOBSFIELD ="DuplicateJobs" # Automatically READ-ONLY
P4FIXESFIELD = "Fixes" # Automatically READ-ONLY
P4PRODUCTFIELD = "Subsystem"
#
# Site specific jobspec fields, should normally be these values
#
# P4JOBFIELD specifies the require jobid field
# P4MODIFIEDBYFIELD specifies the userid of the last modifier
# P4REPORTEDDATEFIELD specifies the date of the job creation
# P4MODIFIEDDATEFIELD specifies the date of the last modification
# P4LASTACION specifies the last type of action done on the job
P4JOBFIELD = "Job"
P4MODIFIEDBYFIELD = "ModifiedBy"
P4REPORTEDDATEFIELD = "ReportedDate"
P4MODIFIEDDATEFIELD = "ModifiedDate"
P4LASTACTIONFIELD = "LastAction"
#
# P4INTERESTED: These are the people who are to be notified of any
# new jobs or changes to existing jobs
#
# Values: userid - email will be looked up using p4 user
# mbox@domain - use this
#
P4INTERESTED = {
"*" => "admin",
"p4cw" => "caedmon,albert,tonyc,evalynne",
"p4scc" => "caedmon,albert,tonyc,kelly,evalynne",
"installer" => "wally,albert,kelly,evalynne",
"p4admin" => "caedmon,jgarcia,doug,evalynne",
"p4dti" => "josh",
"revml" => "barries@slaysys.com,doug,david,evalynne",
"vcp" => "barries@slaysys.com,teague@perforce.beprivate.com,doug,david,evalynne",
"p4diff" => "",
"p4v" => "malouf,mbishop,hans,jcreasy,jason,kelly,david,evalynne",
"p4gt" => "robin@datashades.com,laurette,tonyc,david,evalynne",
"p4web2" => "geri,kelly,evalynne",
"p4wei?" => "",
"p4v.p4merge" => "mbishop,jason,kelly,evalynne",
"p4wsad" => "robin@datashades.com,caedmon,david,kelly,matt,michael,tonyc",
"p4v.p4annotate" => "mbishop,kelly,david,evalynne",
"p4v.p4tree" => "samwise,malouf,david,mbishop,evalynne",
"p4" => "anton,markm,seiwald,michael,doug,evalynne",
"p4p" => "anton,michael,doug,evalynne",
"p4sql" => "robin@datashades.com,michael,tonyc,evalynne",
"p4api" => "anton,seiwald,samwise,marc,doug,evalynne",
"doc" => "",
"p4foroffice" => "robert@vaccaperna.co.uk,john,kelly,evalynne",
"p4ftp" => "tony,marc,evalynne",
"p4web" => "leighb,jkao,david,evalynne",
}
#
# P4FLOW defines the default owners to be assigned when a job is
# created, closed, and released (definition of released is contained
# in P4Logic.rb for the specific site). The owner to be assigned
# can be either a UserID, a reference to a field in the job (e.g.,
# $ReportedBy, or a reference to another state to be used for the
# lookup (e.g., %open which means use the value as if the state were
# open). An empty string indicates that the owner field should be
# left unchanged.
#
# * is used as a catch-all for undefined specific product:state pairs
#
P4FLOW = {
"*:*" => "admin",
"*:open" => "admin",
"*:triaged" => "",
"*:inprogress" => "",
"*:punted" => "",
"*:closed" => "%open",
"*:verified" => "",
"*:suspended" => "",
"*:duplicate" => "%open",
"*:obsolete" => "",
"*:released" => "$ReportedBy",
"p4cw:open" => "albert",
"p4cw:closed" => "www",
"p4scc:open" => "albert",
"p4scc:closed" => "crenck",
"installer:open" => "ccollier",
"installer:closed" => "matt",
"p4admin:open" => "crenck",
"p4admin:closed" => "crenck",
"p4dti:open" => "gerry",
"p4dti:closed" => "ravenbrook",
"revml:open" => "gerry",
"revml:closed" => "matt",
"vcp:open" => "gerry",
"vcp:closed" => "matt",
"p4diff:open" => "jan",
"p4diff:closed" => "jan",
"p4v:open" => "jan",
"p4v:closed" => "gabe",
"p4gt:open" => "john",
"p4gt:closed" => "gabe",
"p4web2:open" => "josh",
"p4web2:closed" => "karen",
"p4wei?:open" => "p4exp",
"p4wei?:closed" => "kelly",
"p4wei?:released" => "www",
"p4v.p4merge:open" => "crenck",
"p4v.p4merge:closed" => "crenck",
"p4wsad:open" => "laurette",
"p4wsad:closed" => "laurette",
"p4v.p4annotate:open" => "michael",
"p4v.p4annotate:closed" => "jcozzo",
"p4v.p4tree:open" => "michael",
"p4v.p4tree:closed" => "www",
"p4:open" => "mshields",
"p4:closed" => "wally",
"p4p:open" => "mshields",
"p4p:closed" => "wally",
"p4sql:open" => "steve",
"p4sql:closed" => "steve",
"p4api:open" => "tony",
"p4api:closed" => "matt",
"doc:open" => "tonyc",
"doc:closed" => "tonyc",
"p4foroffice:open" => "tonyc",
"p4foroffice:closed" => "robert",
"p4ftp:open" => "tonyc",
"p4ftp:closed" => "karen",
"p4web:open" => "tonyc",
"p4web:closed" => "karen",
}
#
# P4IGNORE specifies which fields are to NOT have history generated
# for changes, deletions, and additions
#
P4IGNORE = [
P4LASTACTIONFIELD,
P4JOBFIELD,
P4MODIFIEDBYFIELD,
P4REPORTEDDATEFIELD,
P4MODIFIEDDATEFIELD,
P4HISTORYFIELD,
]
#
# P4READONLY specifies which fields are to only be modified by the
# the EJP system and so are read-only for the user
#
P4READONLY = [
P4DUPLICATEJOBSFIELD,
P4FIXESFIELD,
P4CLOSEDBYFIELD,
P4HISTORYFIELD,
]
#
# Duplicate processing specifications:
#
# P4DUPCOPY specifies which fields are to be copied into the base
# job from the duplicate
# P4DUPCUT specifies which fields are to be copied into the base
# job from the duplicate and removed from the duplicate
#
P4DUPCOPY = [
"List1Changelist",
"List1UserID",
"List1JobID",
"List1DepotPath",
"List1FilePath",
"List1Word",
"ListNChangelist",
"ListNUserID",
"ListNJobID",
"ListNDepotPath",
"ListNFilePath",
"ListNWord",
P4RELATEDJOBSFIELD,
"Set1Changelist",
"Set1UserID",
"Set1JobID",
"Set1DepotPath",
"Set1FilePath",
"Set1Word",
"SetNChangelist",
"SetNUserID",
"SetNJobID",
"SetNDepotPath",
"SetNFilePath",
"SetNWord",
]
P4DUPCUT = [
"CallNumbers",
"XList1Changelist",
"XList1UserID",
"XList1JobID",
"XList1DepotPath",
"XList1FilePath",
"XList1Word",
"XListNChangelist",
"XListNUserID",
"XListNJobID",
"XListNDepotPath",
"XListNFilePath",
"XListNWord",
"XRelatedJobs",
"XSet1Changelist",
"XSet1UserID",
"XSet1JobID",
"XSet1DepotPath",
"XSet1FilePath",
"XSet1Word",
"XSetNChangelist",
"XSetNUserID",
"XSetNJobID",
"XSetNDepotPath",
"XSetNFilePath",
"XSetNWord",
]