UUID = codenotch@renefraga.github.io
EXT_DIR = $(HOME)/.local/share/gnome-shell/extensions/$(UUID)
BUILD_DIR = build
ZIP = $(BUILD_DIR)/$(UUID).shell-extension.zip

.PHONY: all schemas install uninstall pack clean run-nested

all: schemas

# Compila o GSettings schema (obrigatorio antes de rodar ou empacotar)
schemas:
	glib-compile-schemas schemas/

# Instala a extensao para o usuario atual (~/.local/share/gnome-shell/extensions)
install: schemas
	mkdir -p $(EXT_DIR)
	cp -r extension.js prefs.js stylesheet.css metadata.json lib icons schemas $(EXT_DIR)/
	@echo "Instalado em $(EXT_DIR)"
	@echo "Ative com: gnome-extensions enable $(UUID)"
	@echo "Em sessao Wayland, faca logout/login para o Shell recarregar."

uninstall:
	rm -rf $(EXT_DIR)
	@echo "Removido de $(EXT_DIR)"

# Gera o .zip no formato exigido por extensions.gnome.org
# (gnome-extensions pack ja compila o schema e valida metadata.json)
pack:
	mkdir -p $(BUILD_DIR)
	gnome-extensions pack \
		--force \
		--out-dir=$(BUILD_DIR) \
		--extra-source=lib \
		--extra-source=icons \
		.
	@echo "Pacote gerado em $(BUILD_DIR)/"

# Roda uma sessao GNOME Shell aninhada (X11) para testar sem afetar sua sessao real
run-nested: install
	dbus-run-session -- gnome-shell --nested --wayland

clean:
	rm -rf $(BUILD_DIR) schemas/gschemas.compiled
