#!/usr/bin/env python3 #/* # * FreeRTOS Kernel # * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. # * # * SPDX-License-Identifier: MIT # * # * Permission is hereby granted, free of charge, to any person obtaining a copy of # * this software and associated documentation files (the "Software"), to deal in # * the Software without restriction, including without limitation the rights to # * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # * the Software, and to permit persons to whom the Software is furnished to do so, # * subject to the following conditions: # * # * The above copyright notice and this permission notice shall be included in all # * copies or substantial portions of the Software. # * # * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # * # * https://www.FreeRTOS.org # * https://github.com/FreeRTOS # * # */ import os from common.header_checker import HeaderChecker #-------------------------------------------------------------------------------------------------- # CONFIG #-------------------------------------------------------------------------------------------------- KERNEL_IGNORED_FILES = [ 'FreeRTOS-openocd.c', 'Makefile', '.DS_Store' ] KERNEL_IGNORED_EXTENSIONS = [ '.yml', '.css', '.idx', '.md', '.url', '.sty', '.0-rc2', '.s82', '.js', '.out', '.pack', '.2', '.1-kernel-only', '.0-kernel-only', '.0-rc1', '.readme', '.tex', '.png', '.bat', '.sh', '.txt', '.cmake' ] KERNEL_ASM_EXTENSIONS = [ '.s', '.S', '.src', '.inc', '.s26', '.s43', '.s79', '.s85', '.s87', '.s90', '.asm', '.h' ] KERNEL_PY_EXTENSIONS = [ '.py' ] KERNEL_IGNORED_PATTERNS = [ r'.*\.git.*', r'.*portable/IAR/AtmelSAM7S64/.*AT91SAM7.*', r'.*portable/GCC/ARM7_AT91SAM7S/.*', r'.*portable/MPLAB/PIC18F/stdio.h' ] KERNEL_THIRD_PARTY_PATTERNS = [ r'.*portable/ThirdParty/GCC/Posix/port*', r'.*portable/ThirdParty/*', r'.*portable/IAR/AVR32_UC3/.*', r'.*portable/GCC/AVR32_UC3/.*', ] KERNEL_HEADER = [ '/*\n', ' * FreeRTOS Kernel \n', ' * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n', ' *\n', ' * SPDX-License-Identifier: MIT\n', ' *\n', ' * Permission is hereby granted, free of charge, to any person obtaining a copy of\n', ' * this software and associated documentation files (the "Software"), to deal in\n', ' * the Software without restriction, including without limitation the rights to\n', ' * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n', ' * the Software, and to permit persons to whom the Software is furnished to do so,\n', ' * subject to the following conditions:\n', ' *\n', ' * The above copyright notice and this permission notice shall be included in all\n', ' * copies or substantial portions of the Software.\n', ' *\n', ' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n', ' * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n', ' * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n', ' * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n', ' * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n', ' * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', ' *\n', ' * https://www.FreeRTOS.org\n', ' * https://github.com/FreeRTOS\n', ' *\n', ' */\n', ] def main(): parser = HeaderChecker.configArgParser() args = parser.parse_args() # Configure the checks then run checker = HeaderChecker(KERNEL_HEADER, ignored_files=KERNEL_IGNORED_FILES, ignored_ext=KERNEL_IGNORED_EXTENSIONS, ignored_patterns=KERNEL_IGNORED_PATTERNS, third_party_patterns=KERNEL_THIRD_PARTY_PATTERNS, py_ext=KERNEL_PY_EXTENSIONS, asm_ext=KERNEL_ASM_EXTENSIONS) checker.ignoreFile(os.path.split(__file__)[-1]) rc = checker.processArgs(args) if rc: checker.showHelp(__file__) return rc if __name__ == '__main__': exit(main())