From d3d2ce78020e8e3a1fe908d96c15c02c7e21fdb9 Mon Sep 17 00:00:00 2001 From: Fabian Pulch Date: Sat, 18 Apr 2026 17:02:12 +0200 Subject: [PATCH] refactor: address review on Paperclip helper flow --- install/paperclip-install.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/install/paperclip-install.sh b/install/paperclip-install.sh index 1358b98b..d9086965 100644 --- a/install/paperclip-install.sh +++ b/install/paperclip-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -install_packages_with_retry \ +$STD apt install -y \ build-essential \ git \ python3 \ @@ -69,9 +69,11 @@ msg_info "Bootstrapping Paperclip" PAPERCLIP_ONBOARD_LOG=/opt/paperclip/paperclip-onboard.log PAPERCLIP_BOOTSTRAP_LOG=/opt/paperclip/paperclip-bootstrap.log -run_paperclip_onboard() { +for PAPERCLIP_ONBOARD_CMD in \ + "pnpm paperclipai onboard --yes --bind lan" \ + "pnpm paperclipai onboard --yes"; do rm -f "$PAPERCLIP_ONBOARD_LOG" - setsid bash -c "cd /opt/paperclip && $1" >"$PAPERCLIP_ONBOARD_LOG" 2>&1 & + setsid bash -c "cd /opt/paperclip && ${PAPERCLIP_ONBOARD_CMD}" >"$PAPERCLIP_ONBOARD_LOG" 2>&1 & PAPERCLIP_ONBOARD_PID=$! for _ in {1..60}; do if [[ -f /opt/paperclip-data/instances/default/config.json ]]; then @@ -86,13 +88,12 @@ run_paperclip_onboard() { kill -- -"${PAPERCLIP_ONBOARD_PID}" >/dev/null 2>&1 || true wait "$PAPERCLIP_ONBOARD_PID" 2>/dev/null || true fi -} - -run_paperclip_onboard "pnpm paperclipai onboard --yes --bind lan" -if [[ ! -f /opt/paperclip-data/instances/default/config.json ]] && grep -q "unknown option '--bind'" "$PAPERCLIP_ONBOARD_LOG"; then + [[ -f /opt/paperclip-data/instances/default/config.json ]] && break + if ! grep -q "unknown option '--bind'" "$PAPERCLIP_ONBOARD_LOG"; then + break + fi msg_info "Retrying Paperclip Onboarding" - run_paperclip_onboard "pnpm paperclipai onboard --yes" -fi +done if [[ ! -f /opt/paperclip-data/instances/default/config.json ]]; then msg_error "Failed to bootstrap Paperclip"