script: Add ability to insert copyright to *.sh

This commit is contained in:
Hennadii Stepanov
2019-12-07 18:05:31 +02:00
parent 5622d8f315
commit 071f2fc204

View File

@@ -455,14 +455,14 @@ CPP_HEADER = '''
def get_cpp_header_lines_to_insert(start_year, end_year): def get_cpp_header_lines_to_insert(start_year, end_year):
return reversed(get_header_lines(CPP_HEADER, start_year, end_year)) return reversed(get_header_lines(CPP_HEADER, start_year, end_year))
PYTHON_HEADER = ''' SCRIPT_HEADER = '''
# Copyright (c) %s The Bitcoin Core developers # Copyright (c) %s The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying # Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
''' '''
def get_python_header_lines_to_insert(start_year, end_year): def get_script_header_lines_to_insert(start_year, end_year):
return reversed(get_header_lines(PYTHON_HEADER, start_year, end_year)) return reversed(get_header_lines(SCRIPT_HEADER, start_year, end_year))
################################################################################ ################################################################################
# query git for year of last change # query git for year of last change
@@ -491,12 +491,12 @@ def file_has_hashbang(file_lines):
return False return False
return file_lines[0][:2] == '#!' return file_lines[0][:2] == '#!'
def insert_python_header(filename, file_lines, start_year, end_year): def insert_script_header(filename, file_lines, start_year, end_year):
if file_has_hashbang(file_lines): if file_has_hashbang(file_lines):
insert_idx = 1 insert_idx = 1
else: else:
insert_idx = 0 insert_idx = 0
header_lines = get_python_header_lines_to_insert(start_year, end_year) header_lines = get_script_header_lines_to_insert(start_year, end_year)
for line in header_lines: for line in header_lines:
file_lines.insert(insert_idx, line) file_lines.insert(insert_idx, line)
write_file_lines(filename, file_lines) write_file_lines(filename, file_lines)
@@ -513,8 +513,8 @@ def exec_insert_header(filename, style):
sys.exit('*** %s already has a copyright by The Bitcoin Core developers' sys.exit('*** %s already has a copyright by The Bitcoin Core developers'
% (filename)) % (filename))
start_year, end_year = get_git_change_year_range(filename) start_year, end_year = get_git_change_year_range(filename)
if style == 'python': if style in ['python', 'shell']:
insert_python_header(filename, file_lines, start_year, end_year) insert_script_header(filename, file_lines, start_year, end_year)
else: else:
insert_cpp_header(filename, file_lines, start_year, end_year) insert_cpp_header(filename, file_lines, start_year, end_year)
@@ -555,11 +555,13 @@ def insert_cmd(argv):
if not os.path.isfile(filename): if not os.path.isfile(filename):
sys.exit("*** bad filename: %s" % filename) sys.exit("*** bad filename: %s" % filename)
_, extension = os.path.splitext(filename) _, extension = os.path.splitext(filename)
if extension not in ['.h', '.cpp', '.cc', '.c', '.py']: if extension not in ['.h', '.cpp', '.cc', '.c', '.py', '.sh']:
sys.exit("*** cannot insert for file extension %s" % extension) sys.exit("*** cannot insert for file extension %s" % extension)
if extension == '.py': if extension == '.py':
style = 'python' style = 'python'
elif extension == '.sh':
style = 'shell'
else: else:
style = 'cpp' style = 'cpp'
exec_insert_header(filename, style) exec_insert_header(filename, style)