#!/usr/bin/make -f

%:
	dh $@

UPSTREAM_SRC := $(CURDIR)
BUILD_DIR := $(CURDIR)/.debmaker-build
ZIG_CACHE_DIR := $(CURDIR)/.zig-cache
VENDOR_CACHE_DIR := $(CURDIR)/vendor-cache

override_dh_auto_build:
	rm -rf "$(BUILD_DIR)" "$(ZIG_CACHE_DIR)"
	mkdir -p "$(BUILD_DIR)" "$(ZIG_CACHE_DIR)"
	test -d "$(VENDOR_CACHE_DIR)/p"
	cd "$(UPSTREAM_SRC)" && \
		ZIG_GLOBAL_CACHE_DIR="$(ZIG_CACHE_DIR)" DESTDIR="$(BUILD_DIR)" \
		zig build --prefix /usr --system "$(VENDOR_CACHE_DIR)/p" -Doptimize=ReleaseFast -Dcpu=baseline -Di18n=false -Demit-docs=false -Demit-terminfo=false -Dgtk-wayland=false -Dgtk-x11=false

override_dh_auto_install:
	rm -rf debian/ghostty debian/ghostty-docs debian/ghostty-doc
	mkdir -p debian/ghostty/usr debian/ghostty-docs/usr/share/doc/ghostty-docs debian/ghostty-doc/usr/share/doc/ghostty-doc

	for path in bin lib libexec share/applications share/icons share/metainfo share/zsh share/fish share/dbus-1/services; do \
	  if [ -e "$(BUILD_DIR)/usr/$$path" ]; then \
	    mkdir -p "debian/ghostty/usr/$$path"; \
	    cp -a "$(BUILD_DIR)/usr/$$path/"* "debian/ghostty/usr/$$path/" ; \
	  fi ; \
	done

	mkdir -p debian/ghostty/usr/lib/systemd/user

	if [ -f "$(BUILD_DIR)/usr/share/systemd/user/app-com.mitchellh.ghostty.service" ]; then \
	  cp -a "$(BUILD_DIR)/usr/share/systemd/user/app-com.mitchellh.ghostty.service" debian/ghostty/usr/lib/systemd/user/app-com.mitchellh.ghostty.service; \
	  ln -s app-com.mitchellh.ghostty.service debian/ghostty/usr/lib/systemd/user/com.mitchellh.ghostty.service; \
	elif [ -f "$(BUILD_DIR)/usr/share/systemd/user/com.mitchellh.ghostty.service" ]; then \
	  cp -a "$(BUILD_DIR)/usr/share/systemd/user/com.mitchellh.ghostty.service" debian/ghostty/usr/lib/systemd/user/com.mitchellh.ghostty.service; \
	  ln -s com.mitchellh.ghostty.service debian/ghostty/usr/lib/systemd/user/app-com.mitchellh.ghostty.service; \
	elif [ -f "$(BUILD_DIR)/usr/lib/systemd/user/app-com.mitchellh.ghostty.service" ]; then \
	  cp -a "$(BUILD_DIR)/usr/lib/systemd/user/app-com.mitchellh.ghostty.service" debian/ghostty/usr/lib/systemd/user/app-com.mitchellh.ghostty.service; \
	elif [ -f "$(BUILD_DIR)/usr/lib/systemd/user/com.mitchellh.ghostty.service" ]; then \
	  cp -a "$(BUILD_DIR)/usr/lib/systemd/user/com.mitchellh.ghostty.service" debian/ghostty/usr/lib/systemd/user/com.mitchellh.ghostty.service; \
	fi

	mkdir -p debian/ghostty/usr/share/dbus-1/services
	cat > debian/ghostty/usr/share/dbus-1/services/com.mitchellh.ghostty.service <<EOF
	[D-BUS Service]
	Name=com.mitchellh.ghostty
	Exec=/usr/bin/ghostty --gtk-single-instance=true --initial-window=false
	SystemdService=com.mitchellh.ghostty.service
	EOF

	for path in doc man; do \
	  if [ -e "$(BUILD_DIR)/usr/share/$$path" ]; then \
	    mkdir -p "debian/ghostty-docs/usr/share/$$path"; \
	    cp -a "$(BUILD_DIR)/usr/share/$$path/"* "debian/ghostty-docs/usr/share/$$path/" ; \
	  fi ; \
	done

	for doc in README.md PACKAGING.md HACKING.md LICENSE; do \
	  if [ -f "$(UPSTREAM_SRC)/$$doc" ]; then \
	    cp -a "$(UPSTREAM_SRC)/$$doc" debian/ghostty-docs/usr/share/doc/ghostty-docs/; \
	  fi ; \
	done
	cp -a debian/ghostty-docs/usr/share/doc/ghostty-docs/. debian/ghostty-doc/usr/share/doc/ghostty-doc/

override_dh_auto_clean:
	rm -rf debian/.debmaker-build debian/.zig-cache
