blob: 408125b6b107883d49d28bfe454985c935c922f7 [file] [log] [blame]
yang.liffa60e52022-01-11 14:38:56 +08001#!/usr/bin/python3
2#coding:utf-8
yang.li09520922022-01-12 15:51:51 +08003#
4# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
5#
6# SPDX-License-Identifier: MIT
7#
yang.liffa60e52022-01-11 14:38:56 +08008
9import os
10import sys
11import string
12import re
13
14def add_Header_01(filepath, filename):
15 if os.path.exists(filepath) :
16 head_info = string.Template(
17'''/*
18 * Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
19 *
20 * SPDX-License-Identifier: MIT
21 */\n
22''')
23 head = head_info.substitute(vars())
yang.li8c78ed62022-03-08 13:50:52 +080024 f = open(filepath, "r", errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +080025 content = f.read()
yang.li8c78ed62022-03-08 13:50:52 +080026 f_w = open(filepath, "w", errors='ignore', newline='')
27 f_w.seek(0,0)
yang.liffa60e52022-01-11 14:38:56 +080028
yang.li8c78ed62022-03-08 13:50:52 +080029 if(content.find('\r\n') > 0):
30 head_new = re.sub("\n", "\r\n", head)
31 f_w.write(head_new)
32 else:
33 f_w.write(head)
34
35 f_w.write(content)
36 f_w.close
yang.liffa60e52022-01-11 14:38:56 +080037
38
39def add_Header_02(filepath, filename):
40 if os.path.exists(filepath) :
41 head_info = string.Template(
42'''# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
43
44# SPDX-License-Identifier: MIT\n
45''')
46 head = head_info.substitute(vars())
yang.li8c78ed62022-03-08 13:50:52 +080047 f = open(filepath, "r", errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +080048 content = f.read()
yang.li8c78ed62022-03-08 13:50:52 +080049 f_w = open(filepath, "w", errors='ignore', newline='')
50 f_w.seek(0,0)
yang.liffa60e52022-01-11 14:38:56 +080051
yang.li8c78ed62022-03-08 13:50:52 +080052 if(content.find('\r\n') > 0):
53 head_new = re.sub("\n", "\r\n", head)
54 f_w.write(head_new)
55 else:
56 f_w.write(head)
57
58 f_w.write(content)
59 f_w.close
yang.liffa60e52022-01-11 14:38:56 +080060
yang.li09520922022-01-12 15:51:51 +080061def add_Header_03(filepath, filename):
62 if os.path.exists(filepath) :
63 head_info = string.Template(
64'''#
65# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
66#
67# SPDX-License-Identifier: MIT
68#\n
69''')
70 head = head_info.substitute(vars())
yang.li8c78ed62022-03-08 13:50:52 +080071 f = open(filepath, "r", errors='ignore', newline='')
yang.li09520922022-01-12 15:51:51 +080072 content = f.read()
yang.li8c78ed62022-03-08 13:50:52 +080073 f_w = open(filepath, "w", errors='ignore', newline='')
74 f_w.seek(0,0)
yang.li09520922022-01-12 15:51:51 +080075
yang.li8c78ed62022-03-08 13:50:52 +080076 if(content.find('\r\n') > 0):
77 head_new = re.sub("\n", "\r\n", head)
78 f_w.write(head_new)
79 else:
80 f_w.write(head)
81
82 f_w.write(content)
83 f_w.close
yang.li09520922022-01-12 15:51:51 +080084
yang.liffa60e52022-01-11 14:38:56 +080085def del_C_Header(filepath):
86 if os.path.exists(filepath) :
yang.li8c78ed62022-03-08 13:50:52 +080087 file = open(filepath, "r", errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +080088 lines = file.readlines()
89 beforeTag = True
yang.li8c78ed62022-03-08 13:50:52 +080090 writer = open(filepath, 'w', errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +080091 for line in lines :
92 if '#include' in line:
93 beforeTag = False
94 if beforeTag == False:
95 writer.write(line)
96
97def del_H_Header(filepath):
98 if os.path.exists(filepath):
yang.li8c78ed62022-03-08 13:50:52 +080099 file = open(filepath, "r", errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +0800100 lines = file.readlines()
101 beforeTag = True
yang.li8c78ed62022-03-08 13:50:52 +0800102 writer = open(filepath, 'w', errors='ignore', newline='')
yang.liffa60e52022-01-11 14:38:56 +0800103 for line in lines :
yang.li8c78ed62022-03-08 13:50:52 +0800104 if '#ifndef ' in line or '#include ' in line or '#define ' in line or '#ifdef' in line:
yang.liffa60e52022-01-11 14:38:56 +0800105 beforeTag = False
106 if beforeTag == False:
107 writer.write(line)
108
109if __name__ == '__main__':
110 path=sys.argv[1]
111 list = os.walk(path, True)
112 for dir in list:
113 files = dir[2]
114 for file in files:
115 filepath = os.path.join(dir[0], file)
yang.li09520922022-01-12 15:51:51 +0800116 print(filepath)
117 if 'Kconfig' in file or 'CMakeList' in file:
118 add_Header_02(filepath, file)
119 elif 'defconfig' in file or 'prj.conf' in file:
120 add_Header_03(filepath, file)
yang.liffa60e52022-01-11 14:38:56 +0800121 elif '.h' in file or '.ld' in file:
122 del_H_Header(filepath)
123 add_Header_01(filepath, file)
124 elif '.c' in file:
125 del_C_Header(filepath)
126 add_Header_01(filepath, file)
127
128 print( 'Complete!!!!!!!!!!!!!!!')