forked from oceanbase/obdeploy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheck_gpl.py
More file actions
59 lines (54 loc) · 2.24 KB
/
check_gpl.py
File metadata and controls
59 lines (54 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# coding: utf-8
# OceanBase Deploy.
# Copyright (C) 2021 OceanBase
#
# This file is part of OceanBase Deploy.
#
# OceanBase Deploy is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OceanBase Deploy is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OceanBase Deploy. If not, see <https://www.gnu.org/licenses/>.
import os
import io
def check_gpl():
# get .py
rootdir = os.path.join('./')
# 请确保和LICENSE一致
GPL_head = '''# OceanBase Deploy.
# Copyright (C) 2021 OceanBase
#
# This file is part of OceanBase Deploy.
#
# OceanBase Deploy is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OceanBase Deploy is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OceanBase Deploy. If not, see <https://www.gnu.org/licenses/>.'''
miss_GPL_files = ''
for (dirpath, dirnames, filenames) in os.walk(rootdir):
for filename in filenames:
if os.path.splitext(filename)[1] == '.py':
with io.open(os.path.join(dirpath, filename), 'r', encoding='UTF-8') as f:
code = f.read()
if code.strip() and code.find(GPL_head) == -1:
miss_GPL_files+=(os.path.join(dirpath, filename)+'\n')
return False
if miss_GPL_files:
raise Exception('以下文件未添加版权或许可证声明!\n{}'.format(miss_GPL_files))
if __name__ == '__main__':
check_gpl()