forked from apache/metron
-
Notifications
You must be signed in to change notification settings - Fork 1
/
notices_dumper.py
43 lines (37 loc) · 1.66 KB
/
notices_dumper.py
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
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
import sys
def merge_dicts(*dict_args):
result = {}
for dictionary in dict_args:
result.update(dictionary)
return result
def get_statement(component, version, license, location):
#This product bundles SuperWidget 1.2.3, which is available under a
#"3-clause BSD" license.
s = "This product bundles " + component + " " + version \
+ ", which is available under a \"" + license + "\" license. " \
+ "For details, see " + location + "/LICENSE." + component
return s
licenses = {}
for i in xrange(1, len(sys.argv)):
with open(sys.argv[i]) as f:
license_summary = f.read()
licenses = merge_dicts(licenses, json.loads(license_summary))
for component, value in licenses.iteritems():
if not(value['license'].startswith("Apache")):
print get_statement(component, value['version'], value['license'], value['location'])