Changed dependencies to use venv, installs service to opt for systemd compatibility, and added support for bazzite.

This commit is contained in:
= 2026-01-25 17:57:08 -05:00
parent 296c67a2bf
commit 6a7cac5f86
4 changed files with 59 additions and 10 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
*.pyc *.pyc
fwledmonitor.service fwledmonitor.service
venv/

View file

@ -1,7 +1,31 @@
sudo apt install python3-serial #!/bin/bash
chmod +x run.sh set -e
rm -f fwledmonitor.service || true
cat <<EOF >>./fwledmonitor.service SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INSTALL_DIR="/opt/fw-led-monitor"
echo "Installing to $INSTALL_DIR..."
sudo mkdir -p "$INSTALL_DIR"
sudo cp "$SCRIPT_DIR/led_system_monitor.py" "$INSTALL_DIR/"
sudo cp "$SCRIPT_DIR/drawing.py" "$INSTALL_DIR/"
sudo cp "$SCRIPT_DIR/monitors.py" "$INSTALL_DIR/"
sudo cp "$SCRIPT_DIR/commands.py" "$INSTALL_DIR/"
sudo cp "$SCRIPT_DIR/requirements.txt" "$INSTALL_DIR/"
sudo cp "$SCRIPT_DIR/run.sh" "$INSTALL_DIR/"
sudo chmod +x "$INSTALL_DIR/run.sh"
sudo chown -R root:root "$INSTALL_DIR"
VENV_DIR="$INSTALL_DIR/venv"
if [ ! -d "$VENV_DIR" ]; then
sudo python3 -m venv "$VENV_DIR"
fi
sudo "$VENV_DIR/bin/pip" install --upgrade pip
sudo "$VENV_DIR/bin/pip" install -r "$INSTALL_DIR/requirements.txt"
rm -f "$SCRIPT_DIR/fwledmonitor.service" || true
cat <<EOF > "$SCRIPT_DIR/fwledmonitor.service"
[Unit] [Unit]
Description=Framework 16 LED System Monitor Description=Framework 16 LED System Monitor
After=network.service After=network.service
@ -9,14 +33,25 @@ After=network.service
[Service] [Service]
Type=simple Type=simple
Restart=always Restart=always
WorkingDirectory=$PWD RestartSec=5
ExecStart=sh -c "'$PWD/run.sh'" WorkingDirectory=$INSTALL_DIR
ExecStart=/bin/bash $INSTALL_DIR/run.sh
[Install] [Install]
WantedBy=default.target WantedBy=default.target
EOF EOF
sudo systemctl stop fwledmonitor sudo systemctl stop fwledmonitor || true
sudo cp fwledmonitor.service /lib/systemd/system
SERVICE_DIR="/etc/systemd/system"
if ! sudo cp "$SCRIPT_DIR/fwledmonitor.service" "$SERVICE_DIR" 2>/dev/null; then
SERVICE_DIR="/lib/systemd/system"
sudo cp "$SCRIPT_DIR/fwledmonitor.service" "$SERVICE_DIR"
fi
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl enable fwledmonitor sudo systemctl enable fwledmonitor
echo "Installation complete. Service installed to $INSTALL_DIR"
sudo service fwledmonitor start

View file

@ -1,3 +1,4 @@
pyserial pyserial
numpy numpy
psutil
wmi # only for windows wmi # only for windows

16
run.sh
View file

@ -1,3 +1,15 @@
sudo apt install python3-serial python3-numpy python3-psutil #!/bin/bash
set -e
python3 ./led_system_monitor.py SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="$SCRIPT_DIR/venv"
if [ ! -d "$VENV_DIR" ]; then
python3 -m venv "$VENV_DIR"
fi
source "$VENV_DIR/bin/activate"
pip install --upgrade pip
pip install -r "$SCRIPT_DIR/requirements.txt"
python "$SCRIPT_DIR/led_system_monitor.py"