diff options
author | 2024-02-11 02:13:12 +0000 | |
---|---|---|
committer | 2024-02-13 18:15:13 +0000 | |
commit | 3bfe1757bc1627f1bf90ae616723de1962f7a8d7 (patch) | |
tree | 20dc3e57e484fcdc266144fabd2be3229762f7bd /wifi_upload_hook.py | |
parent | 4a67d5de10dc8233a3e3f65b3682756bb26d0427 (diff) |
wifi: Adds a reminder when changing xml tag in bcakup/restore file
Checking condition:
1. Changed files include:
a. "util/XmlUtil.java"
b. "WifiBackupRestore.java"
c. "WifiBackupDataV1Parser.java"
2. changed code contain "XML_TAG".
Bug: 324665148
Test: manual add a test code to see if reminding message is shown
Change-Id: I70f5194b271749d89fdebf432373d56392d38322
Diffstat (limited to 'wifi_upload_hook.py')
-rwxr-xr-x | wifi_upload_hook.py | 115 |
1 files changed, 81 insertions, 34 deletions
diff --git a/wifi_upload_hook.py b/wifi_upload_hook.py index 55fa267c15..ff063f5b02 100755 --- a/wifi_upload_hook.py +++ b/wifi_upload_hook.py @@ -28,13 +28,26 @@ STYLES_FILE = BASE_DIR + "values/styles.xml" DRAWABLE_DIR = BASE_DIR + "drawable/" LAYOUT_DIR = BASE_DIR + "layout/" -def is_commit_msg_valid(commit_msg): +BASE_WIFI_SERVICE_DIR = "service/java/com/android/server/wifi/" +XML_UTIL_FILE = BASE_WIFI_SERVICE_DIR + "util/XmlUtil.java" +CLOUD_BACKUP_RESTORE_FILE = BASE_WIFI_SERVICE_DIR + "WifiBackupRestore.java" +CLOUD_BACKUP_PARSER_FILE = BASE_WIFI_SERVICE_DIR + "WifiBackupDataV1Parser.java" + +def is_commit_msg_valid(commit_msg, checkResource, checkXmlTag): + isValid = True for line in commit_msg.splitlines(): line = line.strip().lower() - if line.startswith('updated-overlayable'): - return True - - return False + if checkResource: + if line.startswith('updated-overlayable'): + isValid = True + checkResource = False + if checkXmlTag: + isValid = False + if line.startswith('reviewed-cloud-b&r'): + isValid = True + checkXmlTag = False + + return isValid def is_in_aosp(): branches = subprocess.check_output(['git', 'branch', '-vv']).splitlines() @@ -61,6 +74,16 @@ def get_changed_resource_file(commit_files): return commit_file return None +def get_changed_xml_related_file(commit_files): + for commit_file in commit_files: + if commit_file == XML_UTIL_FILE: + return commit_file + if commit_file == CLOUD_BACKUP_RESTORE_FILE: + return commit_file + if commit_file == CLOUD_BACKUP_PARSER_FILE: + return commit_file + return None + def is_commit_msg_has_translation_bug_id(commit_msg): for line in commit_msg.splitlines(): line = line.strip().lower() @@ -68,51 +91,75 @@ def is_commit_msg_has_translation_bug_id(commit_msg): return True return False +def is_xml_tag_in_commits(): + cmd_run = subprocess.Popen('git show | grep -iE "XML_TAG"', + shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + out, err = cmd_run.communicate() + for line in out.splitlines(): + if line.startswith(b'+') or line.startswith(b'-'): + print('This commit has xml tag changed: "{changed_line}".'.format(changed_line=line.decode("utf-8"))) + print() + return True + return False def main(): - parser = ArgumentParser(description='Check if the overlayable file has been updated') + parser = ArgumentParser(description='Check if the dependency file has been updated') parser.add_argument('commit_msg', type=str, help='commit message') parser.add_argument('commit_files', type=str, nargs='*', help='files changed in the commit') args = parser.parse_args() commit_msg = args.commit_msg commit_files = args.commit_files - if is_in_aosp(): return 0 - changed_file = get_changed_resource_file(commit_files) - - if not changed_file: - return 0 - if changed_file == STRING_FILE: - if not is_commit_msg_has_translation_bug_id(commit_msg): - print('This commit has changed: "{changed_file}".'.format(changed_file=changed_file)) + changed_resource_file = get_changed_resource_file(commit_files) + + if changed_resource_file: + if changed_resource_file == STRING_FILE: + if not is_commit_msg_has_translation_bug_id(commit_msg): + print('This commit has changed: "{changed_file}".'.format(changed_resource_file=changed_resource_file)) + print() + print('Please add the following line to your commit message') + print() + print('Bug: 294871353') + print() + return 1 + + if not is_commit_msg_valid(commit_msg, True, False): + print('This commit has changed: "{changed_file}".'.format(changed_file=changed_resource_file)) + print() + print('If this change added/changed/removed overlayable resources used by the Wifi Module, ') + print('please update the "{overlay_file}".'.format(overlay_file=OVERLAY_FILE)) + print('and acknowledge you have done so by adding this line to your commit message:') + print() + print('Updated-Overlayable: TRUE') print() - print('Please add the following line to your commit message') + print('Otherwise, please explain why the Overlayable does not need to be updated:') print() - print('Bug: 294871353') + print('Updated-Overlayable: Not applicable - changing default value') + print() + return 1 + changed_xml_related_file = get_changed_xml_related_file(commit_files) + if changed_xml_related_file and is_xml_tag_in_commits(): + if not is_commit_msg_valid(commit_msg, False, True): + print('This commit has changed: "{changed_file}".'.format(changed_file=changed_xml_related_file)) + print() + print('If this change added/changed/removed xml resources used by the Wifi Module, ') + print('please review if it may break/miss the cloud B&R , check "{b_r_file}".'.format(b_r_file=CLOUD_BACKUP_PARSER_FILE)) + print('and acknowledge you have done so by adding this line to your commit message:') + print() + print('Reviewed-Cloud-B&R: TRUE') + print() + print('Otherwise, please explain why the cloud B&R does not need to be updated:') + print() + print('Reviewed-Cloud-B&R: Not applicable - not xml format change') print() return 1 - if is_commit_msg_valid(commit_msg): - return 0 - - print('This commit has changed: "{changed_file}".'.format(changed_file=changed_file)) - print() - print('If this change added/changed/removed overlayable resources used by the Wifi Module, ') - print('please update the "{overlay_file}".'.format(overlay_file=OVERLAY_FILE)) - print('and acknowledge you have done so by adding this line to your commit message:') - print() - print('Updated-Overlayable: TRUE') - print() - print('Otherwise, please explain why the Overlayable does not need to be updated:') - print() - print('Updated-Overlayable: Not applicable - changing default value') - print() - return 1 - + return 0 if __name__ == '__main__': exit_code = main() - sys.exit(exit_code)
\ No newline at end of file + sys.exit(exit_code) |