# Makefile para verificar a sintaxe de todos os arquivos .rb no diretório atual e subdiretórios
SKETCHUP_VERSION ?= 2024
OS ?= Windows_NT
TARGET_DIR := $(APPDATA)\SketchUp\SketchUp $(SKETCHUP_VERSION)\SketchUp\Plugins
FILE_NAME := newgabster
SOURCE_FILE := $(CURDIR)/$(FILE_NAME)
TARGET_FILE := $(TARGET_DIR)\$(FILE_NAME)

ifeq ($(OS), Windows_NT)
    TARGET_DIR := $(APPDATA)\SketchUp\SketchUp $(SKETCHUP_VERSION)\SketchUp\Plugins
    MKLINK_CMD := cmd /C if not exist "$(TARGET_FILE)" mklink /D "$(TARGET_FILE)" "$(SOURCE_FILE)" && echo Link simbólico criado com sucesso: $(FILE_NAME)
    MKLINK_CMD_RB := cmd /C if not exist "$(TARGET_FILE).rb" mklink "$(TARGET_FILE).rb" "$(SOURCE_FILE).rb" && echo Link simbólico criado com sucesso: $(FILE_NAME).rb
else
    TARGET_DIR := ~/Library/Application\ Support/SketchUp\ $(SKETCHUP_VERSION)/SketchUp/Plugins
    MKLINK_CMD := ln -s "$(SOURCE_FILE)" "$(TARGET_FILE)" && echo "Link simbólico criado com sucesso: $(FILE_NAME)"
    MKLINK_CMD_RB := ln -s "$(SOURCE_FILE).rb" "$(TARGET_FILE).rb" && echo "Link simbólico criado com sucesso: $(FILE_NAME).rb"
endif

# Comando para verificar a sintaxe de um arquivo .rb
RUBY_CHECK_CMD := ruby -cw

# Alvo padrão
all: check_syntax

# Alvo para verificar a sintaxe de todos os arquivos .rb
check_syntax:
	@find . -type f -name "*.rb" -exec printf "%s: " "{}" \; -exec sh -c '$(RUBY_CHECK_CMD) "$$0" || echo "Erro de sintaxe em $$0"' {} \;

# Alvo para instalação do plugin
install:
	@echo "$(OS) Instalando o plugin no diretório: $(TARGET_DIR)"
	$(MKLINK_CMD)
	$(MKLINK_CMD_RB)
