From a77f6d380c145a0ccb3f5be09cfcc7bc41f31fb3 Mon Sep 17 00:00:00 2001 From: Andreas Wrede Date: Fri, 1 May 2026 12:48:29 -0400 Subject: [PATCH] fix: install script should not copy over itself --- scripts/hb_install.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/hb_install.sh b/scripts/hb_install.sh index 3e9ced9..63b31a0 100755 --- a/scripts/hb_install.sh +++ b/scripts/hb_install.sh @@ -14,12 +14,13 @@ what=$1 on_ha=0 where="" venv="" +prog=$(realpath $0) [ "$2" = "HA" ] && on_ha=1 [ -z "$what" ] && what="client" if [ -d /homeassistant ]; then - echo "HA, running \"docker exec homeassistant $0 $@\"" - docker exec homeassistant $0 $@ HA + echo "HA, running \"docker exec homeassistant $prog $@\"" + docker exec homeassistant $prog $@ HA rc=$? if [ $rc -ne 0 ]; then echo "Failed to install heartbeat in HA, please check the logs for more details" @@ -88,7 +89,14 @@ else echo "Installing heartbeat $what in virtual environment $venv/hbd" . $venv/hbd/bin/activate fi -python3 -mpip install --upgrade --index-url https://git.wrede.ca/api/packages/andreas/pypi/simple/ --extra-index-url https://pypi.org/simple hbd[$what] +if [ "$what" = "mini" ]; then + echo "Installing hbc mini, which has no external dependencies and is meant for quick setup and testing. For the full client with all features, please run this script with the 'client' argument." + curl -s -o $where/hbc_mini https://git.wrede.ca/andreas/heartbeat/raw/branch/master/scripts/hbc_mini.py + chmod +x $where/hbc_mini +else + echo "Installing heartbeat $what, which includes the full client with all features. If you want to install the minimal client with no external dependencies, please run this script with the 'mini' argument." + python3 -mpip install --upgrade --index-url https://git.wrede.ca/api/packages/andreas/pypi/simple/ --extra-index-url https://pypi.org/simple hbd[$what] +fi if [ "$what" = "server" ]; then rm -f $where/hbd @@ -104,8 +112,8 @@ elif [ "$what" = "client" ]; then rm -f $where/hbc ln -sf $(which hbc) $where/hbc fi - if [ "$0" != "$where/hb_install.sh" ]; then - cp "$0" $where/hb_install.sh + if [ "$prog" != "$where/hb_install.sh" ]; then + cp "$prog" $where/hb_install.sh chmod +x $where/hb_install.sh fi if [ $on_ha -eq 1 ]; then @@ -118,7 +126,7 @@ elif [ "$what" = "client" ]; then elif [ "$what" = "mini" ]; then hbc_path=$(which hbc_mini) if [ "$hbc_path" != "$where/hbc_mini" ]; then - ln -sf $(which hbc) $where/hbc_mini + ln -sf $hbc_path $where/hbc_mini fi echo "hbc mini installed, you can run it with \"$where/hbc_mini\" or \"hbc_mini\" if $where is in your PATH" fi