ha-3dprinter-addons/3dprinter-klipper/rootfs/etc/cont-init.d/klippy.sh
2024-02-08 22:52:29 +01:00

47 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/with-contenv bashio
SRC_PATH=$ADDON_SRC_PATH/klipper
VENV_PATH=$ADDON_VENV_PATH/klipper
CONFIG_PATH=$ADDON_CONFIG_PATH/moonraker/config
# Get Klipper source.
if [ ! -d "$SRC_PATH" ]; then
bashio::log "Get Klipper source"
git clone https://github.com/Klipper3d/klipper "$SRC_PATH"
else
echo "Klipper already installed"
fi
# Install Klipper in virtual environment.
if [ ! -d "$VENV_PATH" ]; then
bashio::log "Prepare Klippy-env"
virtualenv "$VENV_PATH"
"$VENV_PATH"/bin/python -m pip install --upgrade pip
"$VENV_PATH"/bin/pip install -r "$SRC_PATH"/scripts/klippy-requirements.txt
else
bashio::log "Klippy env already installed"
fi
# Make sure config file(s) exists.
if [ ! -d "$CONFIG_PATH" ]; then
mkdir -p "$CONFIG_PATH"
cp -R /etc/klipper/config/* "$CONFIG_PATH"
## Create log folder and file
mkdir -p $ADDON_CONFIG_PATH/moonraker/logs
touch $ADDON_CONFIG_PATH/moonraker/logs/klippy.log
fi
# Build and add host process, if set.
if bashio::config.true 'host_mcu'; then
bashio::log "Enable host process."
BIN_PATH=$ADDON_CONFIG_PATH/bin
if [ ! -f "$BIN_PATH"/klipper_mcu_host ]; then
mkdir -p "$BIN_PATH"
cp /etc/klipper/config_host_mcu "$SRC_PATH"/.config
cd "$SRC_PATH" || exit
make
cp out/klipper.elf "$BIN_PATH"/klipper_mcu_host
fi
rm -f /etc/services.d/klipper_host/down
else
touch /etc/services.d/klipper_host/down
fi