av/init/Makefile

110 lines
3.1 KiB
Makefile
Raw Normal View History

# Install files and directories required by NetSender clients (such as gpio-netsender, rv, etc.)
# and create a dhcpcd.enter-hook for setting the MAC address.
# MA and DK can be optionally passed to Make, e.g, for a hard (first-time) installation:
2019-03-06 02:53:42 +03:00
# sudo MA=mac DK=dk install_hard
# NB: The default (soft) install does not override conf files.
2022-05-26 10:17:42 +03:00
# USR can also be passsed to customise user under which the code is housed.
# For example, if you're trying to make rv on your laptop instead of a pi,
# set USR=<your user name>.
2018-06-02 11:44:55 +03:00
USER := $(shell whoami)
PATH := /usr/local/go/bin:$(PATH)
ifeq ($(MA),)
MA := "00:E0:4C:00:00:01"
endif
ifeq ($(DK),)
2019-03-06 02:53:42 +03:00
DK := 0
endif
2022-05-26 10:17:42 +03:00
ifeq ($(USR),)
USR := "pi"
endif
2018-06-02 11:44:55 +03:00
.SILENT:make_dirs
.SILENT:soft_copy_files
.SILENT:hard_copy_files
.SILENT:set_mac
.SILENT:syncreboot
2018-06-02 11:44:55 +03:00
.SILENT:clean
install: as_root make_dirs soft_copy_files
@echo "Install complete"
2018-06-02 11:44:55 +03:00
install_hard: as_root make_dirs hard_copy_files set_mac syncreboot
@echo "Hard install complete"
2018-06-02 11:44:55 +03:00
install_hard_treat: as_root make_dirs hard_copy_files_treat set_mac syncreboot
@echo "Hard install complete"
2018-06-02 11:44:55 +03:00
as_root:
ifneq ($(USER),root)
$(error Must run as superuser!)
endif
sed -i 's/<user>/$(USR)/' rv.service
sed -i 's/<user>/$(USR)/' run.sh
2018-06-02 11:44:55 +03:00
make_dirs:
if [ ! -d /var/netsender ] ; then \
mkdir /var/netsender; \
chmod guo+rwx /var/netsender; \
fi
if [ ! -d /var/log/netsender ] ; then \
mkdir /var/log/netsender; \
chmod guo+rwx /var/log/netsender; \
fi
soft_copy_files:
if [ -f /etc/systemd/system/rv.service ] ; then \
echo "/etc/systemd/system/rv.service left unmodified" ; \
2018-06-02 11:44:55 +03:00
else \
cp rv.service /etc/systemd/system; \
2018-06-02 11:44:55 +03:00
fi
systemctl enable rv.service
2022-05-26 10:17:42 +03:00
chmod +x run.sh
2018-06-02 11:44:55 +03:00
if [ -f /etc/netsender.conf ] ; then \
echo "/etc/netsender.conf left unmodified" ; \
else \
printf "ma $(MA)\ndk $(DK)\n" > /etc/netsender.conf; \
2022-05-26 10:17:42 +03:00
chown $(USR) /etc/netsender.conf; \
2018-06-02 11:44:55 +03:00
fi
hard_copy_files:
if [ -f /etc/systemd/system/rv.service ] ; then \
echo "/etc/systemd/system/rv.service overwritten" ; \
2018-06-02 11:44:55 +03:00
fi
2020-05-16 17:33:34 +03:00
cp -f rv.service /etc/systemd/system
systemctl enable rv.service
2022-05-26 10:17:42 +03:00
chmod +x run.sh
2018-06-02 11:44:55 +03:00
if [ -f /etc/netsender.conf ] ; then \
echo "Backed up netsender.conf to /etc/netsender.conf.bak"; \
cp /etc/netsender.conf /etc/netsender.conf.bak ; \
fi
2019-03-06 03:00:42 +03:00
printf "ma $(MA)\ndk $(DK)\n" > /etc/netsender.conf
2022-05-26 10:17:42 +03:00
chown $(USR) /etc/netsender.conf
hard_copy_files_treat:
if [ -f /etc/systemd/system/treatment.service ] ; then \
echo "/etc/systemd/system/treatment.service overwritten" ; \
fi
cp -f treatment.service /etc/systemd/system
systemctl enable treatment.service
2020-09-29 10:16:57 +03:00
chmod +x treatment_run.sh
if [ -f /etc/netsender.conf ] ; then \
echo "Backed up netsender.conf to /etc/netsender.conf.bak"; \
cp /etc/netsender.conf /etc/netsender.conf.bak ; \
fi
printf "ma $(MA)\ndk $(DK)\n" > /etc/netsender.conf
2022-05-26 10:17:42 +03:00
chown $(USR) /etc/netsender.conf
set_mac:
printf "ip link set eth0 address $(MA)\n" > /etc/dhcpcd.enter-hook
chmod guo+x /etc/dhcpcd.enter-hook
syncreboot:
cd ../../utils/cmd/syncreboot; make; make install
2018-06-02 11:44:55 +03:00
clean: as_root
rm -rf /var/netsender
rm -rf /var/log/netsender
rm -rf /etc/systemd/system/rv.service
2018-06-02 11:44:55 +03:00
rm -rf /etc/netsender.conf
@echo "Clean complete"