DIR     := $(dir $(lastword $(MAKEFILE_LIST)))
# install git and npm
$(info $(shell set -x; if [ "$$(id -u)" = "0" ]; then echo "Installing git"; dnf -y install git npm; fi))
NAME    := jellyfin-web
VERSION := $(shell set -x; sed -ne '/^Version:/s/.*  *//p' $(DIR)/$(NAME).spec)
RELEASE := $(shell set -x; sed -ne '/^Release:/s/.*  *\(.*\)%{.*}.*/\1/p' $(DIR)/$(NAME).spec)
SRPM    := jellyfin-web-$(subst -,~,$(VERSION))-$(RELEASE)$(shell rpm --eval %dist).src.rpm
TARBALL :=$(NAME)-$(subst -,~,$(VERSION)).tar.gz

epel-7-x86_64_repos := https://rpm.nodesource.com/pub_20.x/nodistro/\$$basearch/

fed_ver := $(shell rpm -E %fedora)
# fallback when not running on Fedora
fed_ver ?= 36
TARGET  ?= fedora-$(fed_ver)-x86_64

outdir  ?= $(PWD)/$(DIR)/

srpm: $(DIR)/$(SRPM)
tarball: $(DIR)/$(TARBALL)

$(DIR)/$(TARBALL):
	cd $(DIR)/;                                          \
	SOURCE_DIR=..                                        \
	WORKDIR="$${PWD}";                                   \
	version=$(VERSION);                                  \
	tar                                                  \
	--transform "s,^\.,$(NAME)-$(subst -,~,$(VERSION))," \
	--exclude='.git*'                                    \
	--exclude='**/.git'                                  \
	--exclude='**/.hg'                                   \
	--exclude=deployment                                 \
	--exclude='*.deb'                                    \
	--exclude='*.rpm'                                    \
	--exclude=$(notdir $@)                               \
	-czf $(notdir $@)                                    \
	-C $${SOURCE_DIR} ./

$(DIR)/$(SRPM): $(DIR)/$(TARBALL) $(DIR)/jellyfin-web.spec
	cd $(DIR)/;                              \
	rpmbuild -bs $(NAME).spec                \
	         --define "_sourcedir $$PWD/"    \
	         --define "_srcrpmdir $(outdir)"

rpms: $(DIR)/$(SRPM)
	mock $(addprefix --addrepo=, $($(TARGET)_repos)) \
	     --enable-network                            \
	     -r $(TARGET) $<
