# Copyright (C)2019..2025 @BABOLO http://www.babolo.ru/
# PKG = mini-cipa
# All rights reserved.
#
# 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.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
#
# $Id: BSDmakefile,v 1.18 2025/11/18 02:33:36 babolo Exp $

.if "${PROTOVER}" != "${PROTOVER:C/[^-a-zA-Z0-9_.]//W}"
. error Illegal PROTOVER=${PROTOVER}
.endif

.ifdef(PROTOVER)                      #
  MINICIPA	= ${PROTOVER}         #
.else                                 #
. if exists(Prot_O_Version)           ##
   PROTOVER	!= cat Prot_O_Version ##
   MINICIPA	= ${PROTOVER}         ##
. endif                               ##
.endif                                #

.include "Makefile"

.if ${PKG} != ${PKG:C/[^-a-zA-Z0-9_.]//W}
. error Illegal PKG=${PKG}
.endif

.if ${VMINOR} != ${VMINOR:C/[^0-9]//W}
. error Illegal VMINOR=${VMINOR}
.endif

.include <${LIBINCLUDEDIR}/define.make>

.ifdef BLIN_OSLinux
  REQUIRED	+= babolo_pglib:*:2.10
.else
  REQUIRED	+= babolo_pglib:2.09
.endif

.if !defined(MINICIPA_CONF) || !exists(${MINICIPA_CONF})                                     #
                                                                                             #
prealldbms:                                                                                  #
                                                                                             #
preallcipa:                                                                                  #
                                                                                             #
.else                                                                                        #
                                                                                             #
prealldbms:                                                                                  #
	MINICIPA_CONF=${MINICIPA_CONF}; . ${MINICIPA_CONF}; [ "$${CIPADBMS}" = ${CIPADBMS} ] #
                                                                                             #
. ifdef(PROTOVER)                                                                            ##
                                                                                             ##
preallcipa:                                                                                  ##
                                                                                             ##             #
. else                                                                                       ##
.  if exists(Prot_O_Version)                                                                 ###
                                                                                             ###
preallcipa:                                                                                  ###
                                                                                             ###
.  else                                                                                      ###
                                                                                             ###
preallcipa:                                                                                  ###
	MINICIPA_CONF=${MINICIPA_CONF}; . ${MINICIPA_CONF}; [ "$${MINICIPA}" = ${MINICIPA} ] ###
                                                                                             ###
.  endif                                                                                     ###
. endif                                                                                      ##
.endif                                                                                       #

.if ${MINICIPA} != minicipa                      #
  CLEAN	+= ${CONF}                               #
                                                 #
${CONF}::                                        #
	${CP} minicipa.conf ${CONF}              #
	${ECHO} "${PROTOVER}" > Prot_O_Version   #
                                                 #
.endif                                           #

preall: prealldbms preallcipa

.include <${LIBINCLUDEDIR}/common.make>

preinstall:
.ifdef BLIN_OSLinux
	if ! id ${UNAME};\
	then\
	    if echo '${UNAME}::${UID}:${UID}:${UNAME}:/home/${UNAME}:/bin/sh' | /sbin/newusers -r;\
	    then echo "Added user ${UNAME}";\
	    else\
	        if ! id ${UNAME};\
	        then echo "Adding user ${UNAME} failed"; exit 1;\
	fi; fi; fi
.else
	if ! ${PW} groupshow ${GNAME} -q;\
	then\
	    if ${PW} groupadd ${GNAME} -g ${UID};\
	    then echo "Added group ${GNAME}";\
	    else echo "Adding group ${GNAME} failed"; exit 1;\
	fi; fi
	if ! ${PW} usershow ${UNAME} -q;\
	then\
	    if ${PW} useradd ${UNAME} -g ${GNAME} -d /home/${UNAME} -s /bin/sh -u ${UID} -c ${UNAME};\
	    then echo "Added user ${UNAME}";\
	    else echo "Adding user ${UNAME} failed"; exit 1;\
	fi; fi
.endif

postinstall:
.ifdef BLIN_OSLinux
	${RM} -f ${PREFIX}/libexec/cipa/${PKG}-${VMAJOR}
	${LN} -fs ${PKG}-${VERS} ${PREFIX}/libexec/cipa/${PKG}-${VMAJOR}
	${RM} -f ${PREFIX}/libexec/cipa/${PKG}
	${LN} -fs ${PKG}-${VMAJOR} ${PREFIX}/libexec/cipa/${PKG}
.else
	${LN} -fhs ${PKG}-${VERS} ${PREFIX}/libexec/cipa/${PKG}-${VMAJOR}
	${LN} -fhs ${PKG}-${VMAJOR} ${PREFIX}/libexec/cipa/${PKG}
.endif
