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)