Problem: No SPDX license info in source files

Solution: Write a script to add such info to all source files
This commit is contained in:
Troy McConaghy 2018-08-08 17:29:50 +02:00
parent 65b6040e6b
commit 4d9dba9a03

37
add-spdx Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
# Add SPDX (license information) lines
# to all source code files and documentation source files
# in this directory and subdirectories (recursively).
#
# To read about SPDX, see https://spdx.org/
#
# Note that this script might also edit files in your virtualenv,
# but that shouldn't be a problem,
# because Git should be ignoring changes in those files.
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -euo pipefail
IFS=$'\n\t'
# All files named *.py or *.sh or *.bash
find . -type f \( -name "*.py" -o -name "*.sh" -o -name "*.bash" \) | while read fname; do
if [ "`head -c 2 $fname`" = "#!" ]; then
# The file '$fname' begins with a hashbang so add the SPDX lines on lines 2+
sed -i '2s/^/# Copyright BigchainDB GmbH and BigchainDB contributors\n# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)\n# Code is Apache-2.0 and docs are CC-BY-4.0\n\n/' $fname
else
# add the SPDX lines on lines 1+
sed -i '1s/^/# Copyright BigchainDB GmbH and BigchainDB contributors\n# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)\n# Code is Apache-2.0 and docs are CC-BY-4.0\n\n/' $fname
fi
done
# All files named *.md (Markdown).
find . -type f -name "*.md" | while read fname; do
sed -i '1s;^;<!---\nCopyright BigchainDB GmbH and BigchainDB contributors\nSPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)\nCode is Apache-2.0 and docs are CC-BY-4.0\n--->\n\n;' $fname
done
# All files named *.rst (reStructuredText).
# See http://docutils.sourceforge.net/docs/user/rst/quickref.html#comments
find . -type f -name "*.rst" | while read fname; do
sed -i '1s;^;\n.. Copyright BigchainDB GmbH and BigchainDB contributors\n SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)\n Code is Apache-2.0 and docs are CC-BY-4.0\n\n;' $fname
done