2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-21 17:11:58 +00:00
confluent/genesis/extracttmuxlicenses.py

84 lines
3.0 KiB
Python
Raw Normal View History

import glob
2024-05-23 19:15:37 +00:00
import os
yearsbyname = {}
namesbylicense = {}
filesbylicense = {}
2024-05-23 19:15:37 +00:00
allfiles = glob.glob('*.c')
allfiles.extend(glob.glob('*.y'))
allfiles.extend(glob.glob('compat/*.c'))
foundbin = False
for source in allfiles: # glob.glob('*.c'):
if 'cmd-parse.c' == source:
continue
if not os.path.exists(source.replace('.c', '.o')):
continue
foundbin = True
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
2024-05-23 19:15:37 +00:00
if line == 'Copyright (c) 1989, 1993\n':
name = 'The Regents of the University of California'
if name not in yearsbyname:
yearsbyname[name] = set([])
yearsbyname[name].add('1989')
yearsbyname[name].add('1993')
continue
if line.startswith('Copyright'):
_, _, years, name = line.split(maxsplit=3)
2024-05-23 19:15:37 +00:00
if '>' in name:
name = name.split('>', 1)[0] + '>'
currnames.add(name)
if name not in yearsbyname:
yearsbyname[name] = set([])
2024-05-23 19:15:37 +00:00
if '-' in years:
strt, end = years.split('-')
for x in range(int(strt), int(end) + 1):
print(str(x))
else:
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")