#!/usr/bin/make -f

export DH_GOLANG_BUILDPKG := github.com/GoogleCloudPlatform/guest-agent/google_guest_agent github.com/GoogleCloudPlatform/guest-agent/google_metadata_script_runner github.com/GoogleCloudPlatform/guest-agent/gce_workload_cert_refresh
export DH_GOLANG_INSTALL_EXTRA := vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb

%:
	dh $@ --builddirectory=_build --buildsystem=golang --with=golang

override_dh_auto_configure:
	cp -r debian/extra/vendor ./
	dh_auto_configure

override_dh_auto_build:
	dh_auto_build -O--buildsystem=golang -- -ldflags="-s -w -X main.version=$(shell dpkg-parsechangelog -S Version)"

override_dh_auto_install:
	# Binary-only package.
	dh_auto_install -- --no-source
	install -d debian/google-guest-agent/usr/share/google-guest-agent
	sed -i "s/vlan_setup_enabled = false/vlan_setup_enabled = true/g" instance_configs.cfg
	install -p -m 0644 instance_configs.cfg debian/google-guest-agent/usr/share/google-guest-agent
	install -d debian/google-guest-agent/lib/systemd/system
	install -p -m 0644 gce-workload-cert-refresh.timer debian/google-guest-agent/lib/systemd/system/
	if [ -d google-guest-agent ]; then\
		install -d debian/google-guest-agent/usr/lib/google/guest_agent;\
		install -p -m 0755 google-guest-agent/cmd/gce_metadata_script_runner/gce_metadata_script_runner debian/google-guest-agent/usr/bin/gce_metadata_script_runner;\
		install -p -m 0755 google-guest-agent/cmd/google_guest_compat_manager/google_guest_compat_manager debian/google-guest-agent/usr/bin/google_guest_compat_manager;\
		install -p -m 0755 google-guest-agent/cmd/google_guest_agent/google_guest_agent debian/google-guest-agent/usr/bin/google_guest_agent_manager;\
		install -p -m 0755 google-guest-agent/cmd/ggactl/ggactl_plugin_cleanup debian/google-guest-agent/usr/bin/ggactl_plugin_cleanup;\
		install -p -m 0755 google-guest-agent/cmd/core_plugin/core_plugin debian/google-guest-agent/usr/lib/google/guest_agent/core_plugin;\
		install -p -m 0755 google-guest-agent/cmd/metadata_script_runner_compat/gce_compat_metadata_script_runner debian/google-guest-agent/usr/bin/gce_compat_metadata_script_runner;\
	fi

override_dh_systemd_enable:
	install -d debian/google-guest-agent/lib/systemd/system
	install -p -m 0644 *.service debian/google-guest-agent/lib/systemd/system/
	# Don't include guest agent manager if not building with it.
	if [ ! -d google-guest-agent ]; then\
		rm -f debian/google-guest-agent/lib/systemd/system/google-guest-compat-manager.service;\
		rm -f debian/google-guest-agent/lib/systemd/system/google-guest-agent-manager.service;\
	fi
	install -d debian/google-guest-agent/lib/systemd/system-preset
	install -p -m 0644 *.preset debian/google-guest-agent/lib/systemd/system-preset/
	dh_systemd_enable google-guest-agent.service google-startup-scripts.service google-shutdown-scripts.service gce-workload-cert-refresh.timer
	if [ -d google-guest-agent ]; then\
		dh_systemd_enable google-guest-compat-manager.service;\
		dh_systemd_enable google-guest-agent-manager.service;\
	fi

override_dh_systemd_start:
	# Only perform start/stop actions for the guest agent and cert refresh timer.
	dh_systemd_start google-guest-agent.service
	dh_systemd_start gce-workload-cert-refresh.timer
	if [ -d google-guest-agent ]; then\
		dh_systemd_start google-guest-compat-manager.service;\
		dh_systemd_start google-guest-agent-manager.service;\
	fi
override_dh_installsystemd:
	dh_installsystemd google-guest-agent.service
	dh_installsystemd gce-workload-cert-refresh.timer
	dh_installsystemd --no-start --no-restart-after-upgrade --no-stop-on-upgrade google-startup-scripts.service google-shutdown-scripts.service gce-workload-cert-refresh.timer

override_dh_clean:
	dh_clean vendor/
