#!/usr/bin/make -f
#
# Copyright (c) 2021, 2022  Peter Pentchev <roam@ringlet.net>
# 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.

PROG=		remrun
SRC=		${PROG}.sh
MAN1=		${PROG}.1
MAN1GZ=		${MAN1}.gz

TEST_TOOL=	tests/run-test.sh

LOCALBASE?=	/usr/local
PREFIX?=	${LOCALBASE}
BINDIR?=	${PREFIX}/bin
SHAREDIR?=	${PREFIX}/share
MANDIR?=	${SHAREDIR}/man/man
MAN1DIR?=	${MANDIR}1

BINOWN?=	root
BINGRP?=	root
BINMODE?=	755

SHAREOWN?=	${BINOWN}
SHAREGRP?=	${BINGRP}
SHAREMODE?=	644

INSTALL_PROGRAM?=	install -o '${BINOWN}' -g '${BINGRP}' -m '${BINMODE}'
INSTALL_DATA?=		install -o '${SHAREOWN}' -g '${SHAREGRP}' -m '${SHAREMODE}'

MKDIR_P?=	mkdir -p

PYTHON3?=	python3

all:		${PROG} ${MAN1GZ}

${PROG}:	${SRC}
		install -m 755 -- '${SRC}' '${PROG}'

${MAN1GZ}:	${MAN1}
		gzip -c -n -9 -- '${MAN1}' > '${MAN1GZ}' || { rm -f -- '${MAN1GZ}'; false; }

test:		all
		[ -n '${SKIP_SHELLCHECK}' ] || shellcheck -- '${PROG}' '${TEST_TOOL}'
		env PYTHONPATH='${CURDIR}/tests/python' ${PYTHON3} -B -u -m run_sshd_test -v -t '${TEST_TOOL}' $(if ${TEST_USERNAME},-u '${TEST_USERNAME}') -- '${PROG}'

install:	all
		${MKDIR_P} '${DESTDIR}${BINDIR}'
		${INSTALL_PROGRAM} -- '${PROG}' '${DESTDIR}${BINDIR}/'

		${MKDIR_P} '${DESTDIR}${MAN1DIR}'
		${INSTALL_DATA} -- '${MAN1GZ}' '${DESTDIR}${MAN1DIR}/'

clean:
		rm -f -- '${PROG}' '${MAN1GZ}'

.PHONY:		all test clean
