Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
80
tools/EVerest-main/applications/utils/scripts/replace_license.py
Executable file
80
tools/EVerest-main/applications/utils/scripts/replace_license.py
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright Pionix GmbH and Contributors to EVerest
|
||||
#
|
||||
"""
|
||||
author: kai-uwe.hermann@pionix.de
|
||||
Replace licenses with Apache 2.0
|
||||
"""
|
||||
|
||||
import argparse
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='replaces licenses with Apache 2.0')
|
||||
|
||||
parser.add_argument('--working-dir', '-wd', type=str,
|
||||
help='Working directory (default: .)', default=str(Path.cwd()))
|
||||
parser.add_argument('--no-year', action='store_true', help='Do not include years in license header')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
working_dir = Path(args.working_dir).expanduser().resolve()
|
||||
|
||||
files = [file for file in working_dir.rglob('*') if file.suffix in ['.cpp', '.hpp']]
|
||||
|
||||
year = ''
|
||||
if not args.no_year:
|
||||
year = f'2020 - {date.today().year} '
|
||||
|
||||
license_text = f"""// SPDX-License-Identifier: Apache-2.0
|
||||
// Copyright {year}Pionix GmbH and Contributors to EVerest
|
||||
"""
|
||||
|
||||
success = 0
|
||||
failure = 0
|
||||
count = len(files)
|
||||
|
||||
for file in files:
|
||||
content = file.read_text()
|
||||
if content.startswith('/*'):
|
||||
needle = '*/\n'
|
||||
end = content.find(needle) + len(needle)
|
||||
new_content = license_text + content[end:]
|
||||
file.write_text(new_content)
|
||||
print(f'Modified {file} with new license header')
|
||||
success += 1
|
||||
else:
|
||||
content_lines = content.splitlines()
|
||||
end = 0
|
||||
for line in content_lines:
|
||||
if line.startswith('//'):
|
||||
end += 1
|
||||
else:
|
||||
break
|
||||
new_content = license_text + '\n'.join(content_lines[end:]) + '\n'
|
||||
file.write_text(new_content)
|
||||
success += 1
|
||||
|
||||
if success != count:
|
||||
print('ERROR during license replacement')
|
||||
else:
|
||||
print('Everything went well')
|
||||
|
||||
manifest_files = [file for file in working_dir.rglob('*') if file.name == 'manifest.yaml']
|
||||
for file in manifest_files:
|
||||
manifest = file.read_text()
|
||||
needle = 'license:'
|
||||
start = manifest.find(needle)
|
||||
end = manifest.find('\n', start+len(needle))
|
||||
new_manifest = manifest[:start] + 'license: https://opensource.org/licenses/Apache-2.0' + manifest[end:]
|
||||
file.write_text(new_manifest)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user