mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 03:50:24 +09:00
PD#SWPL-8487 Problem: Manully generating weekly change is time wasting, we need some helpers Solution: Add auto weekly change generator Verify: Locally pass Change-Id: Ifafcd7d82eebcceaf45676056de4217260f18a5c Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
107 lines
2.8 KiB
Python
Executable File
107 lines
2.8 KiB
Python
Executable File
#!/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()
|
|
|