diff --git a/hub/onboard-spoke.sh b/hub/onboard-spoke.sh index fb8b162..8ff0d71 100755 --- a/hub/onboard-spoke.sh +++ b/hub/onboard-spoke.sh @@ -235,6 +235,24 @@ fi echo "${SPOKE_NAME} ${TUNNEL_PORT} ${KEY_PATH} ${MOUNT_POINT}" >> "$REGISTRY" info "$SPOKE_NAME registered." +header "Setting Up Auto-Mount" +MOUNT_CMD="rclone mount ${SPOKE_NAME}-remote: ${MOUNT_POINT} --config ${HOME}/.config/rclone/rclone.conf --vfs-cache-mode writes --allow-other --daemon" +CRON_ENTRY="@reboot ${MOUNT_CMD}" +EXISTING=$(crontab -l 2>/dev/null || true) +if echo "$EXISTING" | grep -qF "${SPOKE_NAME}-remote:"; then + warn "Crontab entry for ${SPOKE_NAME}-remote already exists, skipping." +else + CRONTAB_BACKUP="${HOME}/.config/tinyboard/crontab.$(date +%Y%m%d%H%M%S)" + mkdir -p "$(dirname "$CRONTAB_BACKUP")" + echo "$EXISTING" > "$CRONTAB_BACKUP" + info "Crontab backed up to $CRONTAB_BACKUP" + { echo "$EXISTING"; echo "$CRON_ENTRY"; } | crontab - + info "Auto-mount crontab entry added for ${SPOKE_NAME}." +fi +info "Starting mount now..." +mkdir -p "$MOUNT_POINT" +eval "$MOUNT_CMD" 2>/dev/null && info "Mounted ${SPOKE_NAME} at ${MOUNT_POINT}." || warn "Mount failed — will retry on next reboot." + header "Onboarding Complete" echo -e " Spoke: ${GREEN}$SPOKE_NAME${NC}" echo -e " Port: ${GREEN}$TUNNEL_PORT${NC}"