mirror of
https://github.com/rightup/pyMC_Repeater.git
synced 2026-03-28 17:43:06 +01:00
Reapply refactor from ce8381a (replace monolithic FrameServer with thin pymc_core subclass, re-export constants, SQLite persistence hooks) while preserving pre-refactor whitespace where patch applied cleanly. Remaining files match refactor commit exactly. Diff vs ce8381a is whitespace-only. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
2.1 KiB
Bash
Executable File
58 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
case "$1" in
|
|
configure)
|
|
# Create system user
|
|
if ! getent passwd pymc-repeater >/dev/null; then
|
|
adduser --system --group --home /var/lib/pymc-repeater \
|
|
--gecos "PyMC Repeater Service" pymc-repeater
|
|
fi
|
|
|
|
# Add user to gpio and spi groups for hardware access
|
|
if getent group gpio >/dev/null; then
|
|
usermod -a -G gpio pymc-repeater
|
|
fi
|
|
if getent group spi >/dev/null; then
|
|
usermod -a -G spi pymc-repeater
|
|
fi
|
|
# Create and set permissions on data directory
|
|
mkdir -p /var/lib/pymc_repeater
|
|
chown -R pymc-repeater:pymc-repeater /var/lib/pymc_repeater
|
|
chmod 750 /var/lib/pymc_repeater
|
|
# Set permissions
|
|
chown -R pymc-repeater:pymc-repeater /etc/pymc_repeater
|
|
chown -R pymc-repeater:pymc-repeater /var/log/pymc-repeater
|
|
chmod 750 /etc/pymc_repeater
|
|
chmod 750 /var/log/pymc-repeater
|
|
|
|
# Copy example config if no config exists
|
|
if [ ! -f /etc/pymc_repeater/config.yaml ]; then
|
|
cp /usr/share/pymc_repeater/config.yaml.example /etc/pymc_repeater/config.yaml
|
|
chown pymc-repeater:pymc-repeater /etc/pymc_repeater/config.yaml
|
|
chmod 640 /etc/pymc_repeater/config.yaml
|
|
fi
|
|
|
|
# Install pymc_core from PyPI if not already installed
|
|
if ! python3 -c "import pymc_core" 2>/dev/null; then
|
|
echo "Installing pymc_core[hardware] from PyPI..."
|
|
python3 -m pip install --break-system-packages 'pymc_core[hardware]>=1.0.7' || true
|
|
fi
|
|
|
|
# Install packages not available in Debian repos
|
|
if ! python3 -c "import cherrypy_cors" 2>/dev/null; then
|
|
echo "Installing cherrypy-cors from PyPI..."
|
|
python3 -m pip install --break-system-packages 'cherrypy-cors==1.7.0' || true
|
|
fi
|
|
|
|
if ! python3 -c "import ws4py" 2>/dev/null; then
|
|
echo "Installing ws4py from PyPI..."
|
|
python3 -m pip install --break-system-packages 'ws4py>=0.5.1' || true
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|