#!/bin/bash

# SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: BSD-3-Clause
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

igx_doc="/usr/share/doc/nvidia-igx-oem-config"
nv_doc="/usr/share/doc/nvidia-tegra"
igx_supplement_file="NVIDIA_Test_and_Evaluation_Supplement.txt"
tegra_eula_file="Tegra_Software_License_Agreement-Tegra-Linux.txt"
license_file="/tmp/full_license_agreement.txt"
templates_file="/usr/lib/nvidia/license/nvlicense.templates"

cat > "${templates_file}" << ENDOFHERE
Template: ubiquity/text/nvlicense_heading_label
Type: text
Description: License For Customer Use of NVIDIA Software

Template: nvlicense/welcome
Type: text
Description: Welcome to Jetson Initial Configuration

Template: nvlicense/eula
Type: note
ENDOFHERE

if [ -e "${igx_doc}" ]; then
	if [ -f "${igx_doc}/${igx_supplement_file}" ]; then
		supplement_file="${igx_doc}/${igx_supplement_file}"
	elif [ -f "${igx_doc}/${igx_supplement_file}.gz" ]; then
		gunzip -c "${igx_doc}/${igx_supplement_file}.gz" > "/tmp/${igx_supplement_file}"
		supplement_file="/tmp/${igx_supplement_file}"
	fi
	nv_doc="${igx_doc}"
fi

if [ -f "${nv_doc}/${tegra_eula_file}" ]; then
	eula_file="${nv_doc}/${tegra_eula_file}"
elif [ -f "${nv_doc}/${tegra_eula_file}.gz" ]; then
	gunzip -c "${nv_doc}/${tegra_eula_file}.gz" > "/tmp/${tegra_eula_file}"
	eula_file="/tmp/${tegra_eula_file}"
fi

if [ -n "${supplement_file}" ]; then
	cat "${supplement_file}" <(echo) "${eula_file}" > "${license_file}"
else
	license_file="${eula_file}"
fi

# Read license content from text file
exec < "${license_file}"

# Capture the first line as description
while read line; do
	if [ -n "${line}" ]; then
		echo "Description: ${line}" >> "${templates_file}"
		break
	fi
done

# Search the second line (ignore blank line) as beginning of
# extend description
skip="true"
while read line; do
	if [ -z "${line}" ]; then
		if [ "${skip}" = "true" ]; then
			continue
		else
			# Replace all blank line with '.'
			line="."
		fi
	fi
	skip="false"
	# Append a space in beginning of each line
	echo " ${line}" >> "${templates_file}"
done
