mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-25 11:01:09 +00:00
60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
|
import glob
|
||
|
yearsbyname = {}
|
||
|
namesbylicense = {}
|
||
|
filesbylicense = {}
|
||
|
for source in glob.glob('*.c'):
|
||
|
with open(source, 'r') as sourcein:
|
||
|
cap = False
|
||
|
thelicense = ''
|
||
|
currnames = set([])
|
||
|
for line in sourcein.readlines():
|
||
|
if '$OpenBSD$' in line:
|
||
|
continue
|
||
|
if '/*' in line:
|
||
|
cap = True
|
||
|
elif '*/' in line:
|
||
|
cap = False
|
||
|
break
|
||
|
elif cap:
|
||
|
line = line[3:]
|
||
|
if line.startswith('Author: '):
|
||
|
continue
|
||
|
if line.startswith('Copyright'):
|
||
|
_, _, years, name = line.split(maxsplit=3)
|
||
|
name = name.split('>', 1)[0] + '>'
|
||
|
currnames.add(name)
|
||
|
if name not in yearsbyname:
|
||
|
yearsbyname[name] = set([])
|
||
|
yearsbyname[name].add(years)
|
||
|
continue
|
||
|
thelicense += line
|
||
|
if thelicense not in namesbylicense:
|
||
|
namesbylicense[thelicense] = set([])
|
||
|
namesbylicense[thelicense].update(currnames)
|
||
|
if thelicense not in filesbylicense:
|
||
|
filesbylicense[thelicense] = set([])
|
||
|
filesbylicense[thelicense].add(source)
|
||
|
# with open(source + '.license', 'w') as liceout:
|
||
|
# liceout.write(thelicense)
|
||
|
|
||
|
for license in namesbylicense:
|
||
|
for file in sorted(filesbylicense[license]):
|
||
|
print('File: ' + file)
|
||
|
print('')
|
||
|
for author in namesbylicense[license]:
|
||
|
years = []
|
||
|
for year in sorted(yearsbyname[author]):
|
||
|
if not years:
|
||
|
years.append(year)
|
||
|
continue
|
||
|
if int(years[-1].split('-')[-1]) == int(year) - 1:
|
||
|
if '-' in years[-1]:
|
||
|
years[-1] = years[-1].split('-', 1)[0] + '-' + year
|
||
|
else:
|
||
|
years[-1] = years[-1] + '-' + year
|
||
|
else:
|
||
|
years.append(year)
|
||
|
authline = 'Copyright (c) {} {}'.format(','.join(years), author)
|
||
|
print(authline)
|
||
|
print("\n" + license + "\n\n")
|