import os import sys #Jobs: # JTFP-19-map # #jobsCheck change-submit //depot/server/bbb/bbb05.txt "c:\jobsCheck\jobsCheck.exe %changelist%" from subprocess import Popen, PIPE #os.environ['P4TRUST'] = '/opt/perforce/triggers/p4trust' os.environ['P4PORT']='1666' os.environ['P4CHARSET'] = 'utf8' os.environ['P4USER'] = 'jobuser' os.environ['P4PASSWD'] = '534F058A1BC50888531EC2B41517C4A1' def run_cmd(cmd): # Popen call wrapper.return (code, stdout, stderr) child = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True, env= os.environ) out, err = child.communicate() ret = child.wait() return (ret, out, err) def write_log(f, str): try: f.writelines(str) except: a = 1 #try: # f = open("/var/p4/hxserver/bin/triggers/job.log", 'w') #except: # a = 1 cmdstr = "p4 change -o " + sys.argv[1] #Popen('export', close_fds=True, shell=True, env=os.environ) (ret, r, err) = run_cmd(cmdstr) #print "cmdstr change:", cmdstr #print (ret,r, err) #write_log(f, "r:" + r) #write_log(f, "\nret: " + str(ret) + "\nerr:" + err) if ret != 0: print "jobcheck error." exit(1) job = "" findjobkey = False lines = r.split('\n') for i in range(len(lines)): x = lines[i].strip() if x == "" : continue if findjobkey == True: job = x if len(job) > 1 and job[0] != '#': break elif x.startswith("Jobs:"): findjobkey = True continue #write_log(f, str(findjobkey) + ","+ job + "\n") checkresult= 1 if (len(job) > 1 and job[0] != '#'): # write_log(f, "\njob:" + job) checkresult = 0 else: print "must associate change with a job." #if f: # f.close() exit(checkresult)