Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
[platform/upstream/VK-GL-CTS.git] / scripts / update-copyright-year.py
1 # -*- coding: utf-8 -*-
2
3 #-------------------------------------------------------------------------
4 # drawElements Quality Program utilities
5 # --------------------------------------
6 #
7 # Copyright 2015 The Android Open Source Project
8 #
9 # Licensed under the Apache License, Version 2.0 (the "License");
10 # you may not use this file except in compliance with the License.
11 # You may obtain a copy of the License at
12 #
13 #      http://www.apache.org/licenses/LICENSE-2.0
14 #
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS,
17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 # See the License for the specific language governing permissions and
19 # limitations under the License.
20 #
21 #-------------------------------------------------------------------------
22
23 import os
24 import re
25 import sys
26 import time
27 import fnmatch
28
29 SRC_FILE_PATTERNS               = [ "*.c", "*.h", "*.cpp", "*.hpp", "*.inl", "*.java", "*.aidl", "*.py" ]
30 COPYRIGHT_PATTERN               = r'Copyright \(C\) ([0-9]{4})(-[0-9]{4})? drawElements Ltd.'
31 COPYRIGHT_REPLACEMENT   = r'Copyright (C) \1-' + time.strftime("%Y") + r' drawElements Ltd.'
32
33 def isSrcFile (filename):
34         for pattern in SRC_FILE_PATTERNS:
35                 if fnmatch.fnmatch(filename, pattern):
36                         return True
37         return False
38
39 def findSrcFiles (dir):
40         srcFiles = []
41         for root, dirs, files in os.walk(dir):
42                 for file in files:
43                         if isSrcFile(file):
44                                 srcFiles.append(os.path.join(root, file))
45         return srcFiles
46
47 def processFile (filename):
48         print(filename)
49         file = open(filename, "rb")
50         data = file.read()
51         file.close()
52         data = re.sub(COPYRIGHT_PATTERN, COPYRIGHT_REPLACEMENT, data)
53         file = open(filename, "wb")
54         file.write(data)
55         file.close()
56
57 def processDir (dir):
58         srcFiles = findSrcFiles(dir)
59         for file in srcFiles:
60                 processFile(file)
61
62 if __name__ == "__main__":
63         if len(sys.argv) < 2:
64                 print(sys.argv[0] + ": [directory]")
65         else:
66                 processDir(sys.argv[1])