.PHONY: install uninstall status

CLAUDE_DIR := $(HOME)/.claude
REPO_DIR := $(shell pwd)

# Items to symlink
ITEMS := scripts skills agents settings.json

install:
	@echo "Installing Claude Code config symlinks..."
	@mkdir -p $(CLAUDE_DIR)
	@for item in $(ITEMS); do \
		if [ -e "$(REPO_DIR)/$$item" ]; then \
			if [ -L "$(CLAUDE_DIR)/$$item" ]; then \
				echo "  $$item: already symlinked"; \
			elif [ -e "$(CLAUDE_DIR)/$$item" ]; then \
				echo "  $$item: backing up existing to $$item.bak"; \
				mv "$(CLAUDE_DIR)/$$item" "$(CLAUDE_DIR)/$$item.bak"; \
				ln -s "$(REPO_DIR)/$$item" "$(CLAUDE_DIR)/$$item"; \
				echo "  $$item: symlinked"; \
			else \
				ln -s "$(REPO_DIR)/$$item" "$(CLAUDE_DIR)/$$item"; \
				echo "  $$item: symlinked"; \
			fi \
		fi \
	done
	@echo "Done! Restart Claude Code to apply changes."

uninstall:
	@echo "Removing Claude Code config symlinks..."
	@for item in $(ITEMS); do \
		if [ -L "$(CLAUDE_DIR)/$$item" ]; then \
			rm "$(CLAUDE_DIR)/$$item"; \
			echo "  $$item: removed symlink"; \
			if [ -e "$(CLAUDE_DIR)/$$item.bak" ]; then \
				mv "$(CLAUDE_DIR)/$$item.bak" "$(CLAUDE_DIR)/$$item"; \
				echo "  $$item: restored backup"; \
			fi \
		fi \
	done
	@echo "Done!"

status:
	@echo "Claude Code config status:"
	@for item in $(ITEMS); do \
		if [ -L "$(CLAUDE_DIR)/$$item" ]; then \
			target=$$(readlink "$(CLAUDE_DIR)/$$item"); \
			echo "  $$item: symlink -> $$target"; \
		elif [ -e "$(CLAUDE_DIR)/$$item" ]; then \
			echo "  $$item: exists (not symlinked)"; \
		else \
			echo "  $$item: not found"; \
		fi \
	done
