xref: /aosp_15_r20/external/deqp/scripts/update-copyright-year.py (revision 35238bce31c2a825756842865a792f8cf7f89930)
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
23import os
24import re
25import sys
26import time
27import fnmatch
28
29SRC_FILE_PATTERNS = [ "*.c", "*.h", "*.cpp", "*.hpp", "*.inl", "*.java", "*.aidl", "*.py" ]
30COPYRIGHT_PATTERN = r'Copyright \(C\) ([0-9]{4})(-[0-9]{4})? drawElements Ltd.'
31COPYRIGHT_REPLACEMENT = r'Copyright (C) \1-' + time.strftime("%Y") + r' drawElements Ltd.'
32
33def isSrcFile (filename):
34    for pattern in SRC_FILE_PATTERNS:
35        if fnmatch.fnmatch(filename, pattern):
36            return True
37    return False
38
39def 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
47def 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
57def processDir (dir):
58    srcFiles = findSrcFiles(dir)
59    for file in srcFiles:
60        processFile(file)
61
62if __name__ == "__main__":
63    if len(sys.argv) < 2:
64        print(sys.argv[0] + ": [directory]")
65    else:
66        processDir(sys.argv[1])
67