#!/usr/bin/make -f
#
# SPDX-FileCopyrightText: Peter Pentchev <roam@ringlet.net>
# SPDX-License-Identifier: BSD-2-Clause

PROG=		repopush
PROG_SH=	${PROG}.sh
MAN_SCD=	${PROG}.scd
MAN1=		${PROG}.1
MAN1GZ=		${MAN1}.gz

LOCALBASE?=	/usr/local
PREFIX?=	${LOCALBASE}

BINDIR?=	${PREFIX}/bin
MANDIR?=	${PREFIX}/man/man

DIRMODE?=	755

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

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

GZIP?=		gzip
GZIP_ARGS?=	-cn9
MKDIR_P?=	mkdir -p -m ${DIRMODE}
INSTALL?=	install

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

PYTHON?=	python3
PYTHON_ENV?=	PYTHONPATH='${CURDIR}/python' PYTHONUNBUFFERED=1

all:		${PROG} ${MAN1GZ}

${PROG}:	${PROG_SH}
		${INSTALL} -m 755 -- '${PROG_SH}' '${PROG}'

${MAN1}:	${MAN_SCD}
		scdoc < '${MAN_SCD}' > '${MAN1}' || { rm -f -- '${MAN1}'; false; }

${MAN1GZ}:	${MAN1}
		${GZIP} ${GZIP_ARGS} -- '${MAN1}' > '${MAN1GZ}' || { rm -f -- '${MAN1GZ}'; false; }

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

test:		all
		${MAKE} test-shellcheck
		${MAKE} test-python

test-shellcheck:
		[ -n "$$SKIP_SHELLCHECK" ] || shellcheck -- '${PROG_SH}'

test-python:
		[ -n "$$SKIP_TOX" ] || ${PYTHON} -m tox

install:	${PROG} ${MAN1}
		[ -d '${DESTDIR}${BINDIR}' ] || ${MKDIR_P} -- '${DESTDIR}${BINDIR}'
		${INSTALL_PROGRAM} -- '${PROG}' '${DESTDIR}${BINDIR}'
		[ -d '${DESTDIR}${MANDIR}1' ] || ${MKDIR_P} -- '${DESTDIR}${MANDIR}1'
		${INSTALL_DATA} -- '${MAN1}' '${DESTDIR}${MANDIR}1'

.PHONY:	all clean install test test-python
