Files
2026-10-04 04:07:15 +00:00

97 lines
4.1 KiB
Makefile

PORTNAME= ktoblzcheck
PORTVERSION= 1.0.0.${BANKDATA_START_DATE}
CATEGORIES= finance
MASTER_SITES= SF/${PORTNAME} \
LOCAL/jhale/${PORTNAME}:bankdata
PKGNAMESUFFIX= -data
DISTFILES= ${PORTNAME}${PKGNAMESUFFIX}-${KBCD_DATE}${EXTRACT_SUFX} \
${BANKDATA_DISTFILE}:bankdata
MAINTAINER= jhale@FreeBSD.org
COMMENT= Bank data used by ktoblzcheck
WWW= https://ktoblzcheck.sourceforge.net/
# Project does not specify a license for the resulting databases, but the data
# files it processes are in the public domain.
LICENSE= PD
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}openpyxl>0:textproc/py-openpyxl@${PY_FLAVOR}
USES= cmake python:build
CMAKE_ARGS= -DDATA_FILEPATH_sepa:PATH="../data/sepa_${BANKDATA_START_DATE}.txt"
CMAKE_ON= INSTALL_RAW_BANKDATA_FILE \
INSTALL_SEPA_BANKDATA_FILE
CMAKE_OFF= ENABLE_BANKDATA_DOWNLOAD
WRKSRC= ${WRKDIR}/${PORTNAME}${PKGNAMESUFFIX}-${KBCD_DATE}
PLIST_SUB= BANKDATA_START_DATE=${BANKDATA_START_DATE}
# Custom: Upstream ships a dated a distfile, but will most likely not contain
# the most recent bank data. This is just used for build system changes.
KBCD_DATE= 20250515
# Custom: This is the date when the bank data is officially recocognized and
# supported. Do not edit manually, unless you really know what you are doing!
# Run `make ktoblzcheck-data-update` to update this value automatically.
BANKDATA_START_DATE= 20260608
# Custom: This is the date when the bank data is officially void and can no
# longer be relied upon. Do not edit manually, unless you really know what you
# are doing! Run `make ktoblzcheck-data-update` to update this value
# automatically.
BANKDATA_END_DATE= 20260906
# Custom: Raw distfile name for the bank data.
BANKDATA_DISTFILE= ${PORTNAME}-bankdata-${BANKDATA_START_DATE}${EXTRACT_SUFX}
post-extract:
# Out of an abundance of caution, remove the pre-built DBs and shipped SEPA data.
(cd ${WRKSRC}/data && ${RM} bankdata* sepa*)
# Populate ${WRKSRC}/data with the contents of our bankdata archive.
.for f in blz_${BANKDATA_START_DATE}.txt ch_data.txt nl_data.xlsx sepa_${BANKDATA_START_DATE}.txt
${CP} ${WRKDIR}/${PORTNAME}-bankdata-${BANKDATA_START_DATE}/${f} ${WRKSRC}/data
.endfor
post-patch:
# See comment in files/patch-src_CMakeLists.txt.
@${REINPLACE_CMD} -e 's|%%BANKDATA_END_DATE%%|'"$$(date -j -f "%Y%m%d" "+%d.%m.%Y" ${BANKDATA_END_DATE})"'|' \
${WRKSRC}/src/CMakeLists.txt
# Custom target to check for python mods needed by ktoblzcheck-data-update.py.
# This is a helper, since the FreeBSD ports infrastructure doesn't currently
# have a built-in method to deal with dependencies required by custom targets.
ktoblzcheck-data-update-py-mod-check:
@for mod in "bs4,beautifulsoup" "requests,requests"; do \
IFS=","; \
set -- $${mod}; \
if ! ${PYTHON_CMD} -c "import $${1}" 2>/dev/null; then \
${ECHO_MSG} "====> Error: Missing Python module $${1}. Please install it: \`pkg install ${PYTHON_PKGNAMEPREFIX}$${2}\`"; \
exit 1; \
else \
${ECHO_MSG} "====> Found Python module $${1}"; \
fi \
done
# Custom target to create a new distfile, edit the 'BANKDATA_START_DATE' and
# 'BANKDATA_END_DATE' variables in this Makefile, and update distinfo.
ktoblzcheck-data-update: ktoblzcheck-data-update-py-mod-check
${PYTHON_CMD} ${FILESDIR}/${@}.py -m ${.CURDIR}/Makefile -o ${DISTDIR} -s ${EXTRACT_SUFX}
${MAKE} -C ${.CURDIR} makesum
@${ECHO_CMD} "====> Don't forget to upload the distfile to freefall after verifying:"
@${ECHO_CMD} "====> \`${MAKE} -C ${.CURDIR} ktoblzcheck-data-upload\`"
# Custom target to upload the new distfile to freefall. This only works for
# FreeBSD committers with access to freefall. Manually verify the distfile
# before running this target!!!
ktoblzcheck-data-upload:
@if [ -f ${DISTDIR}/${BANKDATA_DISTFILE} ]; then \
ssh freefall.freebsd.org "${MKDIR} public_distfiles/${PORTNAME}"; \
scp ${DISTDIR}/${BANKDATA_DISTFILE} freefall.FreeBSD.org:public_distfiles/${PORTNAME}/; \
else \
${ECHO_CMD} "====> Error: distfile ${DISTDIR}/${BANKDATA_DISTFILE} not found."; \
${ECHO_CMD} "====> Run \`${MAKE} -C ${.CURDIR} ktoblzcheck-data-update\` first."; \
exit 1; \
fi
.include <bsd.port.mk>