# Buildstage
FROM lsiobase/alpine:3.12 as buildstage

# set NZBGET version
ARG NZBGET_RELEASE

RUN \
 echo "**** install build packages ****" && \
 apk add \
	curl \
	g++ \
	gcc \
	git \
	libxml2-dev \
	libxslt-dev \
	make \
	ncurses-dev \
	openssl-dev && \
 echo "**** build nzbget ****" && \
 if [ -z ${NZBGET_RELEASE+x} ]; then \
	NZBGET_RELEASE=$(curl -sX GET "https://api.github.com/repos/nzbget/nzbget/releases/latest" \
	| awk '/tag_name/{print $4;exit}' FS='[""]'); \
 fi && \
 mkdir -p /app/nzbget && \
 git clone https://github.com/nzbget/nzbget.git nzbget && \
 cd nzbget/ && \
 git checkout ${NZBGET_RELEASE} && \
 git cherry-pick -n fa57474d && \
 ./configure \
	bindir='${exec_prefix}' && \
 make && \
 make prefix=/app/nzbget install && \
 sed -i \
	-e "s#^MainDir=.*#MainDir=/downloads#g" \
	-e "s#^ScriptDir=.*#ScriptDir=$\{MainDir\}/scripts#g" \
	-e "s#^WebDir=.*#WebDir=$\{AppDir\}/webui#g" \
	-e "s#^ConfigTemplate=.*#ConfigTemplate=$\{AppDir\}/webui/nzbget.conf.template#g" \
	-e "s#^UnrarCmd=.*#UnrarCmd=$\{AppDir\}/unrar#g" \
	-e "s#^SevenZipCmd=.*#SevenZipCmd=$\{AppDir\}/7za#g" \
	-e "s#^CertStore=.*#CertStore=$\{AppDir\}/cacert.pem#g" \
	-e "s#^CertCheck=.*#CertCheck=yes#g" \
	-e "s#^DestDir=.*#DestDir=$\{MainDir\}/completed#g" \
	-e "s#^InterDir=.*#InterDir=$\{MainDir\}/intermediate#g" \
	-e "s#^LogFile=.*#LogFile=$\{MainDir\}/nzbget.log#g" \
	-e "s#^AuthorizedIP=.*#AuthorizedIP=127.0.0.1#g" \
 /app/nzbget/share/nzbget/nzbget.conf && \
 mv /app/nzbget/share/nzbget/webui /app/nzbget/ && \
 cp /app/nzbget/share/nzbget/nzbget.conf /app/nzbget/webui/nzbget.conf.template && \
 ln -s /usr/bin/7za /app/nzbget/7za && \
 ln -s /usr/bin/unrar /app/nzbget/unrar && \
 cp /nzbget/pubkey.pem /app/nzbget/pubkey.pem && \
 curl -o \
	/app/nzbget/cacert.pem -L \
	"https://curl.haxx.se/ca/cacert.pem"

# Runtime Stage
FROM lsiobase/alpine:3.12

# set version label
ARG BUILD_DATE
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thelamer"

RUN \
 echo "**** install build packages ****" && \
 apk add --no-cache --upgrade --virtual=build-dependencies \
	gcc \
	libc-dev \
	libxml2-dev \
	libxslt-dev \
	make \
	py3-pip \
	python3-dev && \
 echo "**** install packages ****" && \
 apk add --no-cache \
	curl \
	libxml2 \
	libxslt \
	openssl \
	p7zip \
	python3 \
	unrar \
	wget && \
 echo "**** install python packages ****" && \
 pip3 install --no-cache-dir -U \
	pip && \
 pip3 install --no-cache-dir \
	apprise \
	chardet \
	pynzbget \
	rarfile && \
 ln -s /usr/bin/python3 /usr/bin/python && \
 echo "**** cleanup ****" && \
 apk del --purge \
	build-dependencies && \
 rm -rf \
	/root/.cache \
	/tmp/*

# add local files and files from buildstage
COPY --from=buildstage /app/nzbget /app/nzbget
COPY root/ /

# ports and volumes
VOLUME /config
EXPOSE 6789
