Files
heartbeat/scripts/install.sh
T
2026-04-12 14:16:44 -04:00

62 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# install the heartbeat client, hbc. The server is installed when the arg 'server' is passed
# install the heartbeat client, hbc. The server is installed when the arg 'server' is passed
# to the script. The script will install the heartbeat tools in a python
# virtual environment in ~/venvs/hbd. The hbd and hbc commands will be
# installed from the wheel and symlinked to ~/bin/hbd and ~/bin/hbc,
# respectively. If the virtual environment already exists, it will be
# reused. The script will also remove any existing symlinks for hbd and hbc
# in ~/bin before creating new ones.
# hbd/hbc from wheel and create symlinks for hbd and hbc in ~/bin
set -e
what=$1
if [ -d /homeassistant ]; then
echo "cannot install in HA, run \"docker exec -it homeassistant $0 $@\""
exit 1
fi
if [ -d /config ]; then
echo "Installing on HA"
where="/config/bin"
venv="/config/venvs"
else
if [ ! -d ~/.local/bin ] && [ ! -d ~/bin ]; then
echo "No suitable bin directory found in PATH, please add either ~/.local/bin or ~/bin to your PATH"
exit 1
fi
for where in ~/bin ~/.local/bin; do
if echo ":$PATH:" | grep -q ":$where:" ; then
break
fi
done
venv="~/venvs"
fi
if [ "$what" = "server" ]; then
echo "Installing heartbeat server (hbd)"
else
what="client"
echo "Installing heartbeat client (hbc)"
fi
if [ ! -d $venv/hbd ]; then
mkdir -p $venv
python3 -m venv $venv/hbd --system-site-packages --without-pip
. $venv/hbd/bin/activate
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py
deactivate
# python3 -m pip --version > /dev/null 2>&1 || { echo "pip is not installed, please install pip for python3"; exit 1; }
fi
. $venv/hbd/bin/activate
pip install --upgrade --index-url https://git.wrede.ca/api/packages/andreas/pypi/simple/ --extra-index-url https://pypi.org/simple hbd[$what]
if [ "$what" = "server" ]; then
rm -f ~$where/hbd
ln -sf $(which hbd) $where/hbd
else
rm -f $where/hbc
ln -sf $(which hbc) $where/hbc
fi