SHELL := /bin/bash
BINARY := ./build/cascade

.PHONY: init build run install delete clean

init:
	@go mod init
	@go mod tidy

build:
	@mkdir -p ./build
	@go build -o $(BINARY) main.go

run: build
	@$(BINARY)

install:
	@mkdir -p /opt/cascade
	@cp $(BINARY) /opt/cascade/cascade
	@if [[ -f /opt/cascade/config.ini ]]; then \
		cp /opt/cascade/config.ini /opt/cascade/config.ini.old.$(shell date +%Y%m%d%H%M%S); \
	fi; \
	if [[ -f ./config.ini ]]; then \
		cp ./config.ini /opt/cascade/config.ini; \
	else \
		cp ./config.ini.example /opt/cascade/config.ini; \
	fi
	@if [[ -f /opt/cascade/menu.ini ]]; then \
		cp /opt/cascade/menu.ini /opt/cascade/menu.ini.old.$(shell date +%Y%m%d%H%M%S); \
	fi; \
	if [[ -f ./menu.ini ]]; then \
		cp ./menu.ini /opt/cascade/menu.ini; \
	else \
		cp ./menu.ini.example /opt/cascade/menu.ini; \
	fi

delete:
	@rm -rf /opt/cascade

clean:
	@rm -rf ./build
