1488570ebSJim Harris#!/bin/bash 2*eb53c232Spaul luse# SPDX-License-Identifier: BSD-3-Clause 3*eb53c232Spaul luse# Copyright (C) 2022 Intel Corporation 4*eb53c232Spaul luse# All rights reserved. 5*eb53c232Spaul luse# 6488570ebSJim Harris 7488570ebSJim Harris( 8488570ebSJim Harris cat << 'END' 9488570ebSJim Harris * Redistribution and use in source and binary forms, with or without 10488570ebSJim Harris * modification, are permitted provided that the following conditions 11488570ebSJim Harris * are met: 12488570ebSJim Harris * 13488570ebSJim Harris * * Redistributions of source code must retain the above copyright 14488570ebSJim Harris * notice, this list of conditions and the following disclaimer. 15488570ebSJim Harris * * Redistributions in binary form must reproduce the above copyright 16488570ebSJim Harris * notice, this list of conditions and the following disclaimer in 17488570ebSJim Harris * the documentation and/or other materials provided with the 18488570ebSJim Harris * distribution. 19488570ebSJim Harris * * Neither the name of __COMPANY__ nor the names of its 20488570ebSJim Harris * contributors may be used to endorse or promote products derived 21488570ebSJim Harris * from this software without specific prior written permission. 22488570ebSJim Harris * 23488570ebSJim Harris * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24488570ebSJim Harris * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25488570ebSJim Harris * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 26488570ebSJim Harris * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 27488570ebSJim Harris * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 28488570ebSJim Harris * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 29488570ebSJim Harris * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 30488570ebSJim Harris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 31488570ebSJim Harris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 32488570ebSJim Harris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33488570ebSJim Harris * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34488570ebSJim Harris */ 35488570ebSJim HarrisEND 36488570ebSJim Harris) > /tmp/c.txt 37488570ebSJim Harris 38488570ebSJim Harris( 39488570ebSJim Harris cat << 'END' 40488570ebSJim Harris# Redistribution and use in source and binary forms, with or without 41488570ebSJim Harris# modification, are permitted provided that the following conditions 42488570ebSJim Harris# are met: 43488570ebSJim Harris# 44488570ebSJim Harris# * Redistributions of source code must retain the above copyright 45488570ebSJim Harris# notice, this list of conditions and the following disclaimer. 46488570ebSJim Harris# * Redistributions in binary form must reproduce the above copyright 47488570ebSJim Harris# notice, this list of conditions and the following disclaimer in 48488570ebSJim Harris# the documentation and/or other materials provided with the 49488570ebSJim Harris# distribution. 50488570ebSJim Harris# * Neither the name of __COMPANY__ nor the names of its 51488570ebSJim Harris# contributors may be used to endorse or promote products derived 52488570ebSJim Harris# from this software without specific prior written permission. 53488570ebSJim Harris# 54488570ebSJim Harris# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 55488570ebSJim Harris# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 56488570ebSJim Harris# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 57488570ebSJim Harris# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 58488570ebSJim Harris# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 59488570ebSJim Harris# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 60488570ebSJim Harris# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 61488570ebSJim Harris# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 62488570ebSJim Harris# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 63488570ebSJim Harris# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 64488570ebSJim Harris# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 65488570ebSJim Harris# 66488570ebSJim HarrisEND 67488570ebSJim Harris) > /tmp/makefile.txt 68488570ebSJim Harris 69488570ebSJim Harrisfunction get_sha() { 70488570ebSJim Harris sha= 71488570ebSJim Harris start=$(cat -n $1 | grep "Redistribution and use" | awk '{print $1}') 72488570ebSJim Harris end=$(cat -n $1 | grep "POSSIBILITY OF SUCH DAMAGE" | head -1 | awk '{print $1}') 73488570ebSJim Harris if [ -z $start ] || [ -z $end ]; then 74488570ebSJim Harris return 75488570ebSJim Harris fi 76488570ebSJim Harris count=$((end - start + 1)) 77488570ebSJim Harris sha=$(sed -n "${start},+${count}p" $1 | sha1sum | awk '{print $1}') 78488570ebSJim Harris} 79488570ebSJim Harris 80488570ebSJim Harrisintel_c_sha=$(sed 's/__COMPANY__/Intel Corporation/g' /tmp/c.txt | sha1sum | awk '{print $1}') 81488570ebSJim Harrisnvidia_c_sha=$(sed 's/__COMPANY__/Nvidia Corporation/g' /tmp/c.txt | sha1sum | awk '{print $1}') 82488570ebSJim Harrissamsung_c_sha=$(sed 's/__COMPANY__/Samsung Electronics Co., Ltd./g' /tmp/c.txt | sha1sum | awk '{print $1}') 83488570ebSJim Harriseideticom_c_sha=$(sed 's/__COMPANY__/Eideticom Inc/g' /tmp/c.txt | sha1sum | awk '{print $1}') 84488570ebSJim Harrisgeneric_c_sha=$(sed 's/__COMPANY__/the copyright holder/g' /tmp/c.txt | sha1sum | awk '{print $1}') 85488570ebSJim Harris 86488570ebSJim Harrisfor f in $(git ls-files '**/*.c' '**/*.cpp' '**/*.h' '**/*.cc' '**/*.go'); do 87488570ebSJim Harris get_sha $f 88488570ebSJim Harris if [[ $sha == "$intel_c_sha" ]] \ 89488570ebSJim Harris || [[ $sha == "$nvidia_c_sha" ]] \ 90488570ebSJim Harris || [[ $sha == "$samsung_c_sha" ]] \ 91488570ebSJim Harris || [[ $sha == "$eideticom_c_sha" ]] \ 92488570ebSJim Harris || [[ $sha == "$generic_c_sha" ]]; then 93488570ebSJim Harris echo $f 94488570ebSJim Harris sed -i "$((start - 1)),+$((count))d" $f 95488570ebSJim Harris sed -i '1,3d' $f 96488570ebSJim Harris sed -i '1 i /* SPDX-License-Identifier: BSD-3-Clause' $f 97488570ebSJim Harris fi 98488570ebSJim Harris 99488570ebSJim Harrisdone 100488570ebSJim Harris 101488570ebSJim Harrisintel_makefile_sha=$(sed 's/__COMPANY__/Intel Corporation/g' /tmp/makefile.txt | sha1sum | awk '{print $1}') 102488570ebSJim Harrisnvidia_makefile_sha=$(sed 's/__COMPANY__/Nvidia Corporation/g' /tmp/makefile.txt | sha1sum | awk '{print $1}') 103488570ebSJim Harrissamsung_makefile_sha=$(sed 's/__COMPANY__/Samsung Electronics Co., Ltd./g' /tmp/makefile.txt | sha1sum | awk '{print $1}') 104488570ebSJim Harriseideticom_makefile_sha=$(sed 's/__COMPANY__/Eideticom Inc/g' /tmp/makefile.txt | sha1sum | awk '{print $1}') 105488570ebSJim Harrisgeneric_makefile_sha=$(sed 's/__COMPANY__/the copyright holder/g' /tmp/makefile.txt | sha1sum | awk '{print $1}') 106488570ebSJim Harris 107488570ebSJim Harrisfor f in $(git ls-files CONFIG MAKEFILE '**/*.mk' '**/Makefile'); do 108488570ebSJim Harris get_sha $f 109488570ebSJim Harris if [[ $sha == "$intel_makefile_sha" ]] \ 110488570ebSJim Harris || [[ $sha == "$nvidia_makefile_sha" ]] \ 111488570ebSJim Harris || [[ $sha == "$samsung_makefile_sha" ]] \ 112488570ebSJim Harris || [[ $sha == "$eideticom_makefile_sha" ]] \ 113488570ebSJim Harris || [[ $sha == "$generic_makefile_sha" ]]; then 114488570ebSJim Harris echo $f 115488570ebSJim Harris sed -i "$((start - 1)),+$((count))d" $f 116488570ebSJim Harris sed -i '1,3d' $f 117488570ebSJim Harris sed -i "1 i \# SPDX-License-Identifier: BSD-3-Clause" $f 118488570ebSJim Harris fi 119488570ebSJim Harris 120488570ebSJim Harrisdone 121