11PROJECT_NAME = https_proxy
2+ INSTALL_DIR = /usr/bin
3+ CONFIG_DIR = /etc/$(PROJECT_NAME )
4+ SYSTEMD_DIR = /etc/systemd/system
25
3- .PHONY : build run clean
6+ .PHONY : build run clean install uninstall install-service uninstall-service start stop restart status enable disable
47
58build :
69 CGO_ENABLED=0 go build -o $(PROJECT_NAME ) main.go
1518
1619clean :
1720 rm -f $(PROJECT_NAME )
18- rm -f $(PROJECT_NAME ) _static
21+ rm -f $(PROJECT_NAME ) _static
22+
23+ install : build
24+ @echo " Установка $( PROJECT_NAME) ..."
25+ install -d $(CONFIG_DIR )
26+ install -m 755 $(PROJECT_NAME ) $(INSTALL_DIR ) /$(PROJECT_NAME )
27+ @if [ ! -f $( CONFIG_DIR) /config.yaml ]; then \
28+ install -m 644 config.example.yaml $(CONFIG_DIR ) /config.yaml; \
29+ echo " Конфиг установлен: $( CONFIG_DIR) /config.yaml" ; \
30+ else \
31+ echo " Конфиг уже существует, пропускаем: $( CONFIG_DIR) /config.yaml" ; \
32+ fi
33+ install -m 644 packaging/$(PROJECT_NAME ) .service $(SYSTEMD_DIR ) /$(PROJECT_NAME ) .service
34+ systemctl daemon-reload
35+ systemctl enable $(PROJECT_NAME )
36+ systemctl start $(PROJECT_NAME )
37+ @echo " Установка завершена. Сервис $( PROJECT_NAME) запущен и добавлен в автозагрузку."
38+
39+ uninstall :
40+ @echo " Удаление $( PROJECT_NAME) ..."
41+ -systemctl stop $(PROJECT_NAME ) 2> /dev/null || true
42+ -systemctl disable $(PROJECT_NAME ) 2> /dev/null || true
43+ rm -f $(SYSTEMD_DIR ) /$(PROJECT_NAME ) .service
44+ rm -f $(INSTALL_DIR ) /$(PROJECT_NAME )
45+ systemctl daemon-reload
46+ @echo " Удаление завершено."
47+ @echo " Конфигурация сохранена в $( CONFIG_DIR) "
48+
49+ uninstall-full : uninstall
50+ @echo " Удаление конфигурации..."
51+ rm -rf $(CONFIG_DIR )
52+ @echo " Полное удаление завершено."
53+
54+ install-service :
55+ install -m 644 packaging/$(PROJECT_NAME ) .service $(SYSTEMD_DIR ) /$(PROJECT_NAME ) .service
56+ systemctl daemon-reload
57+ systemctl enable $(PROJECT_NAME )
58+ systemctl start $(PROJECT_NAME )
59+ @echo " Сервис $( PROJECT_NAME) установлен и запущен."
60+
61+ uninstall-service :
62+ -systemctl stop $(PROJECT_NAME ) 2> /dev/null || true
63+ -systemctl disable $(PROJECT_NAME ) 2> /dev/null || true
64+ rm -f $(SYSTEMD_DIR ) /$(PROJECT_NAME ) .service
65+ systemctl daemon-reload
66+ @echo " Сервис $( PROJECT_NAME) удалён."
67+
68+ start :
69+ systemctl start $(PROJECT_NAME )
70+ @echo " Сервис $( PROJECT_NAME) запущен."
71+
72+ stop :
73+ systemctl stop $(PROJECT_NAME )
74+ @echo " Сервис $( PROJECT_NAME) остановлен."
75+
76+ restart :
77+ systemctl restart $(PROJECT_NAME )
78+ @echo " Сервис $( PROJECT_NAME) перезапущен."
79+
80+ status :
81+ systemctl status $(PROJECT_NAME )
82+
83+ enable :
84+ systemctl enable $(PROJECT_NAME )
85+ @echo " Сервис $( PROJECT_NAME) добавлен в автозагрузку."
86+
87+ disable :
88+ systemctl disable $(PROJECT_NAME )
89+ @echo " Сервис $( PROJECT_NAME) удалён из автозагрузки."
0 commit comments