#!/usr/bin/sh
#------------------------------------------------------------------------------
# /var/install/config.d/ktls-utils.sh - ktls-utils  parameter update script
#
# Creation:     2026-02-17 hbfl
# Last Update:  $Id$
#
# Copyright (c) 2026-@@YEAR@@ Holger Bruenjes, holgerbruenjes(at)gmx(dot)net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#----------------------------------------------------------------------------

package_name='ktls-utils'

# include configlib
. /var/install/include/configlib

VERSION=3.6.0

# ---------------------------------------------------------------------------
# Set the default values for configuration
# ---------------------------------------------------------------------------
get_defaults()
{
    START_KTLS_UTILS='no'

    KTLS_UTILS_SERVER_CERT='no'
    KTLS_UTILS_CLIENT_CERT='no'
    
    KTLS_UTILS_SSL_CA=''
    KTLS_UTILS_SSL_CERT=''
    
    KTLS_UTILS_DEBUG='0'
}

# ---------------------------------------------------------------------------
# rename old variables
# ---------------------------------------------------------------------------
rename_old_variables()
{
    # read old values
    if [ -f /etc/config.d/${package_name} ]
    then
        /var/install/bin/backup-file --quiet ${package_name}
        . /etc/config.d/${package_name}
    fi
}

# --------------------------------------------------------------------------
# Write config and default files
# --------------------------------------------------------------------------
make_config_file()
{
    internal_conf_file="${1}"
    {
    # ----------------------------------------------------------------------
    printgpl --conf "${package_name}" '2026-02-17' 'hbfl' 
    # ----------------------------------------------------------------------
    echo "# ktls-utils VERSION ${VERSION}"
    # ----------------------------------------------------------------------
    printgroup 'General settings'
    # ----------------------------------------------------------------------

    printvar 'START_KTLS_UTILS' 
    printcomment             "Start: 'yes' or 'no'"

    printvar 'KTLS_UTILS_SERVER_CERT'
    printcomment             "Use: 'yes' or 'no'"
    printcomment             'Provide a Server section'     
    printcomment             'if a Server is running'
    
    printvar 'KTLS_UTILS_CLIENT_CERT'
    printcomment             "Use: 'yes' or 'no'"
    printcomment             'Provide a Client section'
    printcomment             'if a Client is running'

    # ----------------------------------------------------------------------
    printgroup 'Certificate settings'
    # ----------------------------------------------------------------------

    printvar 'KTLS_UTILS_SSL_CA'
    printcomment             'Name from the ca certificat'
    printcomment             'default empty, the system store is used'

    printvar 'KTLS_UTILS_SSL_CERT'
    printcomment             'Name from SSL-Certificat'

    # ----------------------------------------------------------------------
    printgroup 'Debug'
    # ----------------------------------------------------------------------

    printvar 'KTLS_UTILS_DEBUG'
    printcomment             '0 - 3'

    # -----------------------------------------------------------------------
    printend
    # ----------------------------------------------------------------------
    } > ${internal_conf_file}

    # Set rights
    chmod 0600 ${internal_conf_file}
    chown root ${internal_conf_file}
}

# ---------------------------------------------------------------------------
# Create the check.d file
# ---------------------------------------------------------------------------
make_check_file()
{
printgpl --check ${package_name} '2018-05-27' 'hbfl' >/etc/check.d/${package_name}
cat >>/etc/check.d/${package_name} <<EOF
# Variable               OPT_VARIABLE       VARIABLE_N  VALUE
START_KTLS_UTILS         -                  -           YESNO

KTLS_UTILS_SERVER_CERT   START_KTLS_UTILS   -           YESNO
KTLS_UTILS_CLIENT_CERT   START_KTLS_UTILS   -           YESNO

KTLS_UTILS_SSL_CA        START_KTLS_UTILS   -           ESSL_CERTIFICATE_CUI  
KTLS_UTILS_SSL_CERT      START_KTLS_UTILS   -           SSL_CERTIFICATE_CUI

KTLS_UTILS_DEBUG         START_KTLS_UTILS   -           NUMERIC  

EOF

  # Set rights for check.d file
   chmod 0600 /etc/check.d/${package_name}
   chown root /etc/check.d/${package_name}
}

# ---------------------------------------------------------------------------
# main
# ---------------------------------------------------------------------------
main()
{
    get_defaults
    
    # write default config file
    make_config_file /etc/default.d/${package_name}

    # update from old version
    rename_old_variables

    # write new config file
    make_config_file /etc/config.d/${package_name}

    # write check.d file
    make_check_file

    exit 0
}

# ---------------------------------------------------------------------------
# call function main
# ---------------------------------------------------------------------------
main "${@}"

# ---------------------------------------------------------------------------
# end
# ---------------------------------------------------------------------------
