40
Makefile
40
Makefile
@@ -1,10 +1,13 @@
|
||||
PROJECT_NAME := homeservice
|
||||
PROJECT_NAME := waterservice
|
||||
|
||||
PREFIX ?= /usr/bin
|
||||
|
||||
CONFIG_DIR := /etc/$(PROJECT_NAME)
|
||||
CONFIG_FILE := config.json
|
||||
DEVICES_DIR := $(CONFIG_DIR)
|
||||
DEVICES_FILE := devices.json
|
||||
SYSTEM_DIR := /usr/lib/systemd/system
|
||||
WEB_DIR := /var/lib/$(PROJECT_NAME)
|
||||
WEB_DIR := /var/lib/$(PROJECT_NAME)/webui
|
||||
|
||||
BIN_FILE := build/bin/$(PROJECT_NAME)
|
||||
UNIT_FILE := $(PROJECT_NAME).service
|
||||
@@ -16,15 +19,12 @@ all: service
|
||||
.PHONY: service
|
||||
service:
|
||||
mkdir -p bin
|
||||
go clean
|
||||
go mod tidy
|
||||
go build -o $(BIN_FILE)
|
||||
cd src && go build -o ../$(BIN_FILE)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
go clean
|
||||
rm -rf bin
|
||||
-rm $(PROJECT_NAME).tar.gz
|
||||
cd src && go clean
|
||||
rm -rf build
|
||||
|
||||
.PHONY: install
|
||||
install: all
|
||||
@@ -40,13 +40,29 @@ install: all
|
||||
install -d $(WEB_DIR)
|
||||
cp -r webui/* $(WEB_DIR)
|
||||
|
||||
# Config file
|
||||
@if [ -f $(CONFIG_DIR)/$(notdir $(CONFIG_FILE)) ]; then \
|
||||
echo "$(CONFIG_DIR)/$(notdir $(CONFIG_FILE)) already exists - skipping..."; \
|
||||
else \
|
||||
install -d $(CONFIG_DIR); \
|
||||
install -m 0644 config/$(CONFIG_FILE) $(CONFIG_DIR); \
|
||||
echo "install -d $(CONFIG_DIR)"; \
|
||||
echo "install -m 0644 $(CONFIG_FILE) $(CONFIG_DIR)"; \
|
||||
fi
|
||||
|
||||
# devices file
|
||||
@if [ -f $(DEVICES_DIR)/$(notdir $(DEVICES_FILE)) ]; then \
|
||||
echo "$(DEVICES_DIR)/$(notdir $(DEVICES_FILE)) already exists - skipping..."; \
|
||||
else \
|
||||
install -d $(DEVICES_DIR); \
|
||||
install -m 0644 config/$(DEVICES_FILE) $(DEVICES_DIR); \
|
||||
echo "install -d $(DEVICES_DIR)"; \
|
||||
echo "install -m 0644 $(DEVICES_FILE) $(DEVICES_DIR)"; \
|
||||
fi
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
rm -rf $(CONFIG_DIR)
|
||||
rm -rf $(SYSTEM_DIR)/$(UNIT_FILE)
|
||||
rm -rf $(PREFIX)/$(PROJECT_NAME)
|
||||
rm -rf $(WEB_DIR)
|
||||
|
||||
.PHONY: package
|
||||
package: all
|
||||
tar cvzf $(PROJECT_NAME).tar.gz $(CONFIG_FILE) $(BIN_FILE) $(UNIT_FILE) $(README_FILE) webui/build/*
|
||||
|
Reference in New Issue
Block a user