From dd21835e84c33dfb23abeda540712f34d996b224 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 20 Oct 2024 21:47:16 -0300 Subject: [PATCH] prompt user if files exist --- Makefile | 128 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 89 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index b4ddd88..52c5c4e 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ SHELL := /bin/bash SUDO := $(shell test $${EUID} -ne 0 && echo "sudo") .EXPORT_ALL_VARIABLES: +CURDIR := $(shell pwd) SYSCFG = /etc/mavlink-router CONFIG ?= /var/local LIBSYSTEMD=/lib/systemd/system @@ -17,7 +18,6 @@ LOCAL_SCRIPTS=temperature.sh cockpitScript.sh default: interactive install static set_network_manager_config configure_wifibroadcast -# New interactive target interactive: @clear @echo " " @@ -82,8 +82,8 @@ disable: enable: @( for c in stop disable ; do $(SUDO) systemctl $${c} $(SERVICES) ; done ; true ) @( for s in $(SERVICES) ; do $(SUDO) install -Dm644 $${s%.*}.service $(LIBSYSTEMD)/$${s%.*}.service ; done ; true ) - @if [ ! -z "$(SERVICES)" ] ; then $(SUDO) systemctl daemon-reload ; fi - @( for s in $(SERVICES) ; do $(SUDO) systemctl enable $${s%.*} ; done ; true ) + @if [ ! -z "$(SERVICES)" ]; then $(SUDO) systemctl daemon-reload; fi + @( for s in $(SERVICES) ; do $(SUDO) systemctl enable $${s%.*}; done; true ) @echo "" @echo "Service is installed. To run now use sudo systemctl start mavlink-router and sudo systemctl start cockpit.socket" @echo "Inspect output with sudo journalctl -fu mavlink-router" @@ -95,59 +95,109 @@ static: install: verify_spir0 # install helper apps - @$(SUDO) apt update - @$(SUDO) apt install -y nano nload htop picocom sshpass + $(SUDO) apt update + $(SUDO) apt install -y nano nload htop picocom sshpass -# install mavlink-router - @rm -rf ~/tmp/mavlink-router-source - @git clone https://github.com/EchoMAV/mavlink-router-src ~/tmp/mavlink-router-source && \ - cd ~/tmp/mavlink-router-source && git submodule update --init --recursive && \ - $(SUDO) apt -y install git ninja-build pkg-config gcc g++ systemd && \ - $(SUDO) apt -y install python3-pip && \ - $(SUDO) pip3 install meson smbus && \ - meson setup build . && $(SUDO) ninja -C build install +# install mavlink-router if not already installed + @if [ -d ~/tmp/mavlink-router-source ]; then \ + read -p "Mavlink-router source already exists. Do you want to reinstall? (Y/N): " reinstall; \ + if [ "$$reinstall" = "Y" ] || [ "$$reinstall" = "y" ]; then \ + echo "Reinstalling Mavlink-router..."; \ + cd ~/tmp/mavlink-router-source && git submodule update --init --recursive && \ + $(SUDO) apt -y install git ninja-build pkg-config gcc g++ systemd && \ + $(SUDO) apt -y install python3-pip && \ + $(SUDO) pip3 install meson smbus && \ + meson setup build . && $(SUDO) ninja -C build install; \ + else \ + echo "Skipping Mavlink-router installation."; \ + fi; \ + else \ + rm -rf ~/tmp/mavlink-router-source && \ + git clone https://github.com/EchoMAV/mavlink-router-src ~/tmp/mavlink-router-source && \ + cd ~/tmp/mavlink-router-source && git submodule update --init --recursive && \ + $(SUDO) apt -y install git ninja-build pkg-config gcc g++ systemd && \ + $(SUDO) apt -y install python3-pip && \ + $(SUDO) pip3 install meson smbus && \ + meson setup build . && $(SUDO) ninja -C build install; \ + fi # install the config file - @$(SUDO) mkdir -p $(SYSCFG) - @$(SUDO) cp main.conf $(SYSCFG)/. + $(SUDO) mkdir -p $(SYSCFG) + $(SUDO) cp main.conf $(SYSCFG)/. # make ensure-cockpit.sh executable and run it $(SUDO) chmod +x $(CURDIR)/ensure-cockpit.sh - @if [ -x "$(CURDIR)/ensure-cockpit.sh" ]; then \ + if [ -x "$(CURDIR)/ensure-cockpit.sh" ]; then \ $(SUDO) $(CURDIR)/ensure-cockpit.sh; \ else \ echo "Error: ensure-cockpit.sh not found or not executable"; \ exit 1; \ fi -# set up cockpit files - @$(SUDO) rm -rf /usr/share/cockpit/general/ - @$(SUDO) mkdir /usr/share/cockpit/general/ - @$(SUDO) cp -rf ui/general/* /usr/share/cockpit/general/ - @$(SUDO) cp -rf ui/branding-ubuntu/* /usr/share/cockpit/branding/ubuntu/ - @$(SUDO) cp -rf ui/static/* /usr/share/cockpit/static/ - @$(SUDO) cp -rf ui/base1/* /usr/share/cockpit/base1/ +# set up cockpit files if not already done + @if [ ! -d /usr/share/cockpit/general ]; then \ + $(SUDO) mkdir -p /usr/share/cockpit/general/ && \ + $(SUDO) cp -rf ui/general/* /usr/share/cockpit/general/; \ + fi + @if [ ! -d /usr/share/cockpit/branding/ubuntu ]; then \ + $(SUDO) mkdir -p /usr/share/cockpit/branding/ubuntu && \ + $(SUDO) cp -rf ui/branding-ubuntu/* /usr/share/cockpit/branding/ubuntu/; \ + fi + $(SUDO) cp -rf ui/static/* /usr/share/cockpit/static/ + $(SUDO) cp -rf ui/base1/* /usr/share/cockpit/base1/ @[ -d $(LOCAL)/echopilot ] || $(SUDO) mkdir $(LOCAL)/echopilot @for s in $(LOCAL_SCRIPTS); do $(SUDO) install -Dm755 $${s} $(LOCAL)/echopilot/$${s}; done -# install modified 8812EU drivers - @git clone https://github.com/libc0607/rtl88x2eu-20230815 ~/tmp/rtl88x2eu && \ - cd ~/tmp/rtl88x2eu && git submodule update --init --recursive && \ - $(SUDO) sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile && \ - $(SUDO) sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile && \ - $(SUDO) chmod +x ./dkms-install.sh && \ - $(SUDO) apt -y install dkms && \ - $(SUDO) ./dkms-install.sh +# install modified 8812EU drivers if not already installed + @if [ -d ~/tmp/rtl88x2eu ]; then \ + read -p "8812EU drivers source already exists. Do you want to reinstall? (Y/N): " reinstall; \ + if [ "$$reinstall" = "Y" ] || [ "$$reinstall" = "y" ]; then \ + echo "Reinstalling 8812EU drivers..."; \ + cd ~/tmp/rtl88x2eu && git submodule update --init --recursive && \ + $(SUDO) sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile && \ + $(SUDO) sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile && \ + $(SUDO) apt -y install dkms && \ + $(SUDO) chmod +x ./dkms-install.sh && \ + $(SUDO) ./dkms-install.sh; \ + else \ + echo "Skipping 8812EU drivers installation."; \ + fi; \ + else \ + git clone https://github.com/libc0607/rtl88x2eu-20230815 ~/tmp/rtl88x2eu && \ + cd ~/tmp/rtl88x2eu && git submodule update --init --recursive && \ + $(SUDO) sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile && \ + $(SUDO) sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile && \ + $(SUDO) apt -y install dkms && \ + $(SUDO) chmod +x ./dkms-install.sh && \ + $(SUDO) ./dkms-install.sh; \ + fi -# Install WFB-NG dependencies and compile deb - @git clone -b stable https://github.com/svpcom/wfb-ng.git ~/tmp/wfb-ng && \ - cd ~/tmp/wfb-ng && \ - $(SUDO) apt -y install python3-all libpcap-dev libsodium-dev python3-pip python3-pyroute2 python3-future python3-twisted python3-serial python3-all-dev iw virtualenv debhelper dh-python build-essential && \ - $(SUDO) make deb && \ - $(SUDO) dpkg -i /deb_dist/wfb*.deb +# Install WFB-NG dependencies and compile deb if not already installed + @if [ -d ~/tmp/wfb-ng ]; then \ + read -p "WFB-NG source already exists. Do you want to reinstall? (Y/N): " reinstall; \ + if [ "$$reinstall" = "Y" ] || [ "$$reinstall" = "y" ]; then \ + echo "Reinstalling WFB-NG..."; \ + cd ~/tmp/wfb-ng && \ + $(SUDO) apt -y install python3-all libpcap-dev libsodium-dev python3-pip python3-pyroute2 python3-future python3-twisted python3-serial python3-all-dev iw virtualenv debhelper dh-python build-essential && \ + $(SUDO) make deb && \ + $(SUDO) dpkg -i /deb_dist/wfb*.deb; \ + else \ + echo "Skipping WFB-NG installation."; \ + fi; \ + else \ + git clone -b stable https://github.com/svpcom/wfb-ng.git ~/tmp/wfb-ng && \ + cd ~/tmp/wfb-ng && \ + $(SUDO) apt -y install python3-all libpcap-dev libsodium-dev python3-pip python3-pyroute2 python3-future python3-twisted python3-serial python3-all-dev iw virtualenv debhelper dh-python build-essential && \ + $(SUDO) make deb && \ + $(SUDO) dpkg -i /deb_dist/wfb*.deb; \ + fi -# create initial WFB-NG config file - @$(SUDO) cp wifibroadcast.cfg /etc/ +# create initial WFB-NG config file if not already exists + @if [ ! -f /etc/wifibroadcast.cfg ]; then \ + $(SUDO) cp wifibroadcast.cfg /etc/; \ + else \ + echo "WFB-NG configuration already exists, skipping creation."; \ + fi # move drone encryption key to /etc/ @$(SUDO) cp drone.key /etc/