- #!/usr/bin/env python3
- '''
- A form-save trigger for the Perforce server to enforce sane job names.
-
- $DateTimeTZ: 2015/03/13 07:17:58 -0700 PDT $
- $Author: lester_cheung $
- $Id: //guest/lester_cheung/p4util/p4util/trigger/form/sane_jobname.py#1 $
-
- '''
- import sys
-
- SECTION_NAME = 'JOB'
- PREPY3 = sys.version_info[0] < 3
- if PREPY3:
- from ConfigParser import ConfigParser
- from StringIO import StringIO
- else:
- from configparser import ConfigParser
-
-
- def sane_jobname(specfilename):
- '''Dies with exit state 1 unless jobname is pretty.'''
- with open(specfilename) as fd:
- spec = '[{0}]\n'.format(SECTION_NAME) + fd.read()
-
- cfg = ConfigParser()
-
- if PREPY3:
- fakefile = StringIO(spec)
- cfg.readfp(fakefile) # ConfigParser.read_string was added in Python 3.2
- job_label_defined = cfg.has_option(SECTION_NAME, 'Job')
- else:
- cfg.read_string(spec)
- job_label_defined = 'Job' in cfg[SECTION_NAME]
-
- if not job_label_defined:
- print('Field "Job" is required')
- sys.exit(1)
-
- jobname = cfg.get(SECTION_NAME, 'Job')
- if jobname == 'new' or jobname.startswith('job'):
- sys.exit(0)
-
- print('Job name ({0}) should be "new" or starts with "job".'.format(jobname))
- sys.exit(1)
-
-
- if __name__ == '__main__':
- myspecfile = sys.argv[1]
- sane_jobname(myspecfile)
- # should never return
# |
Change |
User |
Description |
Committed |
|
#1
|
12050 |
Lester Cheung |
Form-save trigger to prevent random job names from getting created |
10 years ago
|
|