#!/usr/bin/make -f

export DH_VERBOSE=1

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

DEB_VERSION := $(shell dpkg-parsechangelog -SVersion | sed 's/-[^-]*$$//')
UPSTREAM_VERSION := $(DEB_VERSION)
SOFTWARE_NAME := oauth2-proxy

export GOTOOLCHAIN=local
export GOPROXY=off
export GOSUMDB=off
export GOMODCACHE=$(CURDIR)/.gomodcache
# Launchpad sbuild sets HOME to unwritable /sbuild-nonexistent; keep the
# build cache inside the build tree.
export GOCACHE=$(CURDIR)/.gocache
export CGO_ENABLED=0

%:
	dh $@

override_dh_auto_build:
	# vendor/ is unpacked by dpkg-source from the orig-vendor component.
	@test -d vendor -a -f vendor/modules.txt || { \
		echo "ERROR: vendor/ missing; orig-vendor component did not unpack" >&2; \
		exit 1; \
	}

	go build \
		-v -trimpath \
		-mod=vendor -modcacherw -buildvcs=false \
		-ldflags "-X github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version.VERSION=$(UPSTREAM_VERSION) \
		         -s -w -buildid=" \
		-o $(SOFTWARE_NAME) .

	@test -f $(SOFTWARE_NAME) || (echo "ERROR: binary not built" && exit 1)
	@echo "==> Binary built successfully: $(SOFTWARE_NAME)"

override_dh_auto_install:
	install -Dm755 $(SOFTWARE_NAME) $(CURDIR)/debian/$(SOFTWARE_NAME)/usr/bin/$(SOFTWARE_NAME)
	install -Dm644 LICENSE $(CURDIR)/debian/$(SOFTWARE_NAME)/usr/share/doc/$(SOFTWARE_NAME)/copyright

	# Systemd service + socket are auto-installed by dh_installinit from
	# debian/oauth2-proxy.service / debian/oauth2-proxy.socket.

	# Sysusers configuration
	install -Dm644 debian/$(SOFTWARE_NAME).sysusers \
		$(CURDIR)/debian/$(SOFTWARE_NAME)/usr/lib/sysusers.d/$(SOFTWARE_NAME).conf

	# Example configuration
	install -Dm644 contrib/$(SOFTWARE_NAME).cfg.example \
		$(CURDIR)/debian/$(SOFTWARE_NAME)/etc/$(SOFTWARE_NAME)/$(SOFTWARE_NAME).cfg.example

	# Bash completion
	install -Dm644 contrib/$(SOFTWARE_NAME)_autocomplete.sh \
		$(CURDIR)/debian/$(SOFTWARE_NAME)/usr/share/bash-completion/completions/$(SOFTWARE_NAME)

override_dh_auto_test:

override_dh_strip:
