#!/bin/bash if [ "$1" = "" ] then Usage: collecto_copyrights.sh [output_file] exit 1 fi TMP=$(mktemp -t wmbusmeters.copyrights.XXXXXXXXXX) TMP_AUTHORS=$(mktemp -t wmbusmeters.authors.XXXXXXXXXX) TMP_OTHER_AUTHORS=$(mktemp -t wmbusmeters.other.authors.XXXXXXXXXX) function finish { rm -f $TMP $TMP_AUTHORS $TMP_OTHER_AUTHORS } trap finish EXIT cat > $TMP < Files: * Copyright: 2017-2022 Fredrik Öhrström License: GPL-3+ EOF SOURCES=$(find src -type f | sort) for f in $SOURCES do cat $f | grep "Copyright (C)" | sed 's/.*Copyright (C) *//g' > $TMP_AUTHORS cat $TMP_AUTHORS | grep -v Öhrström > $TMP_OTHER_AUTHORS cops=$(cat $TMP_AUTHORS | tr '\n' '|' | \ sed 's/[0-9][0-9][0-9][0-9]-//' | \ sed 's/ ([^)]*)//g' | \ sed -z 's/|$//g' | \ sed 's/|/\n /g') if grep -q -i "gpl-3.0-or-later" $f then license="GPL-3+" elif grep -q -i "CC0" $f then license="CC0" else echo "Unknown license in file: "+$f exit 1 fi if [ -s $TMP_OTHER_AUTHORS ] then { echo "Files: $f" echo "Copyright: $cops" echo "License: $license" echo "" } >> $TMP fi done cat >> $TMP <