123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- RELEASEURL:="https://github.com/vladimirok5959/bash-empty-daemon/releases/download/latest/daemon.zip"
- BINDIR:=/usr/local/bin
- LROTDIR:=/etc/logrotate.d
- INITD:=/etc/init.d
- INSTALLDIR:=/etc
- SINITED:="0"
- default: check info
- install: check dir-test download create-link create-logrotate create-autostart show-done-msg
- check:
- $(eval SINITED="1")
- @echo "Check for dependences..."
- @wget -V > /dev/null
- @unzip -v > /dev/null
- dir-test: check-manual-run check-if-name-set
- @echo "Check directories..."
- @if [ ! -d "$(BINDIR)" ]; then \
- echo "Aborted. Dir '$(BINDIR)' is not exists"; \
- exit 1; \
- fi
- @if [ ! -d "$(LROTDIR)" ]; then \
- echo "Aborted. Dir '$(LROTDIR)' is not exists"; \
- exit 1; \
- fi
- @if [ ! -d "$(INSTALLDIR)" ]; then \
- echo "Aborted. Dir '$(INSTALLDIR)' is not exists"; \
- exit 1; \
- fi
- @if [ -d "$(INSTALLDIR)/$(NAME)" ]; then \
- echo "Aborted. Directory '$(INSTALLDIR)/$(NAME)' already exists"; \
- exit 1; \
- fi
- info: check-manual-run
- @echo "You can run 'make install NAME=my-service'"
- download: check-manual-run check-if-name-set
- @if [ ! -z "$(NAME)" ]; then \
- echo "Download latest empty daemon..."; \
- cd $(INSTALLDIR); \
- mkdir $(NAME); \
- cd $(NAME); \
- wget -q $(RELEASEURL) > /dev/null; \
- echo "Installing..."; \
- unzip -o daemon.zip > /dev/null; \
- rm daemon.zip; \
- mv run.sh $(NAME).sh; \
- chmod 744 $(NAME).sh; \
- fi
- create-link: check-manual-run check-if-name-set
- @if [ ! -z "$(NAME)" ]; then \
- echo "Create symlink..."; \
- ln -sf $(INSTALLDIR)/$(NAME)/$(NAME).sh $(BINDIR)/$(NAME); \
- fi
- create-logrotate: check-manual-run check-if-name-set
- @if [ ! -z "$(NAME)" ]; then \
- echo "Create config file for logrotate..."; \
- echo "$(INSTALLDIR)/$(NAME)/logs/all.log {" > $(LROTDIR)/$(NAME); \
- echo " daily" >> $(LROTDIR)/$(NAME); \
- echo " missingok" >> $(LROTDIR)/$(NAME); \
- echo " rotate 14" >> $(LROTDIR)/$(NAME); \
- echo " compress" >> $(LROTDIR)/$(NAME); \
- echo " delaycompress" >> $(LROTDIR)/$(NAME); \
- echo " notifempty" >> $(LROTDIR)/$(NAME); \
- echo " create 640 root root" >> $(LROTDIR)/$(NAME); \
- echo " sharedscripts" >> $(LROTDIR)/$(NAME); \
- echo "}" >> $(LROTDIR)/$(NAME); \
- fi
- create-autostart:
- @if [ ! -d "$(INITD)" ]; then \
- echo "Aborted. Dir '$(INITD)' is not exists"; \
- exit 1; \
- fi
- @if [ ! -z "$(NAME)" ]; then \
- echo "Create auto start script..."; \
- echo "#!/bin/sh" > $(INITD)/$(NAME); \
- echo "" >> $(INITD)/$(NAME); \
- echo "### BEGIN INIT INFO" >> $(INITD)/$(NAME); \
- echo "# Provides: $(NAME)" >> $(INITD)/$(NAME); \
- echo "# Required-Start: \$$local_fs \$$network \$$syslog" >> $(INITD)/$(NAME); \
- echo "# Required-Stop: \$$local_fs \$$network \$$syslog" >> $(INITD)/$(NAME); \
- echo "# Default-Start: 2 3 4 5" >> $(INITD)/$(NAME); \
- echo "# Default-Stop: 0 1 6" >> $(INITD)/$(NAME); \
- echo "# Short-Description: starts the daemon ($(NAME))" >> $(INITD)/$(NAME); \
- echo "# Description: starts the daemon ($(NAME)) using start-stop-daemon" >> $(INITD)/$(NAME); \
- echo "### END INIT INFO" >> $(INITD)/$(NAME); \
- echo "" >> $(INITD)/$(NAME); \
- echo "/usr/local/bin/$(NAME) \$$1" >> $(INITD)/$(NAME); \
- echo "exit 0" >> $(INITD)/$(NAME); \
- chmod 0755 $(INITD)/$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc0.d/K01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc1.d/K01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc2.d/K01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc3.d/S01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc4.d/S01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc5.d/S01$(NAME); \
- ln -sf ../init.d/$(NAME) /etc/rc6.d/K01$(NAME); \
- fi
- show-done-msg: check-manual-run
- @echo "Done! Daemon with name '$(NAME)' successfully generated!"
- check-if-name-set:
- @if [ -z "$(NAME)" ]; then \
- echo "You must provide a NAME for daemon. For example 'make install NAME=my-service'..."; \
- exit 1; \
- fi
- check-manual-run:
- @if [ "$(SINITED)" != "1" ]; then \
- echo "Aborted. You can't run this command manually"; \
- exit 1; \
- fi
|