| #!/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 = "<div>" |
| 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 + '<a title=\"' + gerrit_url + \ |
| '\"ass=\" external\" rel=\"external nofollow\" href=\"' + gerrit_url + '\" target=\"_blank\">' + \ |
| commit + '</a> - ' + message |
| if highlight_shp == True: |
| if is_sh_platform_commit(owner_name) == True: |
| html_out += ' (SH_PLATFORM_KERNEL)<br>' |
| else: |
| html_out += '<br>' |
| else: |
| html_out += '<br>' |
| #print(html_out) |
| html_out = html_out + '</div>' |
| #print(html_out) |
| |
| html = open("weekly_update.html", "w+") |
| html.write(html_out); |
| html.close |
| |
| if __name__ == "__main__": |
| main() |
| |