#!/usr/bin/python import sys import getopt import os import json PLAFORM_SH_MEMBERS = "Jianxin Pan, Tao Zeng, Hanjie Lin, Yan Wang, Jiamin Ma, Jianxiong Pan, \ Qi Duan, Zhuo Wang, Yue Wang, He He, Yu Tu, \ Qiufang Dai, Hong Guo, Zhiqiang Liang, Pan Yang, Shunzhou Jiang, Huan Biao" def usage(): print("\nweekly_change.py is a tool assisting at generating weekly change report") print("usage:") print("-s xxxx-xx-xx") print(" specify the the starting date") print("-e xxxx-xx-xx") print(" specify the the ending date") print("-p") print(" highlight commit from SH PLATFORM MEMBER(kernel)") print("-h") print(" show this help info") def exec_cmd_rdata(cmd): result = os.popen(cmd) res = result.read() res=res.strip('\n') return res def is_sh_platform_commit(auther): if auther in PLAFORM_SH_MEMBERS: return True return False def main(): start_date = "" end_date = "" git_commit_cmd = "git log --pretty=\"%h - %s\" --since=" git_commit_info = "" html_out = "
" gerrit_cmd_1 = "ssh -p 29418 scgit.amlogic.com gerrit query --format=JSON commit:" highlight_shp = False opts, args = getopt.getopt(sys.argv[1:], "hps:e:") for op, value in opts: if op == "-s": start_date = value if op == "-e": end_date = value if op == "-p": highlight_shp = True if op == "-h": usage() sys.exit() #print(start_date) git_commit_cmd = git_commit_cmd+start_date if end_date == "": git_commit_cmd = git_commit_cmd + " --no-merges" else: git_commit_cmd = git_commit_cmd + " --until=" + end_date + " --no-merges" #print(git_commit_cmd) git_commit_info = exec_cmd_rdata(git_commit_cmd) #print(git_commit_info) # obtain gerrit url via gerrit query for line in git_commit_info.splitlines(): #print(line) commit = line.split(" - ")[0] message = line.split(" - ")[1] #print(commit+"-"+message) gerrit_cmd = gerrit_cmd_1 + commit #print(gerrit_cmd) gerrit_info = exec_cmd_rdata(gerrit_cmd) gerrit_info = gerrit_info.split("\n")[0] #print(gerrit_info) data = json.loads(gerrit_info) #print(data['owner']["name"]) #print(data['url']) owner_name = data['owner']["name"] gerrit_url = data['url'] # # we do not use any html library, which is too heavy # html_out = html_out + '' + \ commit + ' - ' + message if highlight_shp == True: if is_sh_platform_commit(owner_name) == True: html_out += ' (SH_PLATFORM_KERNEL)
' else: html_out += '
' else: html_out += '
' #print(html_out) html_out = html_out + '
' #print(html_out) html = open("weekly_update.html", "w+") html.write(html_out); html.close if __name__ == "__main__": main()