A simple tool which lets you scrape twitter accounts and crosspost them to bluesky accounts! Comes with a CLI and a webapp for managing profiles! Works with images/videos/link embeds/threads.
11
fork

Configure Feed

Select the types of activity you want to include in your feed.

Auto-reexec updater when update.sh changes mid-run

j4ckxyz 8c663a63 be3d05b9

+51
+51
update.sh
··· 20 20 DO_RESTART=1 21 21 REMOTE_OVERRIDE="" 22 22 BRANCH_OVERRIDE="" 23 + ORIGINAL_ARGS=("$@") 24 + UPDATE_SH_REEXECED="${UPDATE_SH_REEXECED:-0}" 23 25 24 26 STASH_REF="" 25 27 STASH_CREATED=0 ··· 29 31 BACKUP_SOURCES=() 30 32 BACKUP_PATHS=() 31 33 BUN_BIN="" 34 + ORIGINAL_SCRIPT_CHECKSUM="" 32 35 33 36 usage() { 34 37 cat <<'USAGE' ··· 126 129 127 130 run_bun() { 128 131 "$BUN_BIN" "$@" 132 + } 133 + 134 + compute_file_checksum() { 135 + local file="$1" 136 + 137 + if command -v sha256sum >/dev/null 2>&1; then 138 + sha256sum "$file" | awk '{print $1}' 139 + return 0 140 + fi 141 + 142 + if command -v shasum >/dev/null 2>&1; then 143 + shasum -a 256 "$file" | awk '{print $1}' 144 + return 0 145 + fi 146 + 147 + if command -v openssl >/dev/null 2>&1; then 148 + openssl dgst -sha256 "$file" | awk '{print $NF}' 149 + return 0 150 + fi 151 + 152 + return 1 129 153 } 130 154 131 155 acquire_lock() { ··· 352 376 fi 353 377 } 354 378 379 + reexec_with_latest_updater_if_changed() { 380 + if [[ "$UPDATE_SH_REEXECED" == "1" ]]; then 381 + return 0 382 + fi 383 + 384 + if [[ -z "$ORIGINAL_SCRIPT_CHECKSUM" ]]; then 385 + return 0 386 + fi 387 + 388 + local current_checksum 389 + current_checksum="$(compute_file_checksum "$SCRIPT_DIR/update.sh" 2>/dev/null || true)" 390 + if [[ -z "$current_checksum" || "$current_checksum" == "$ORIGINAL_SCRIPT_CHECKSUM" ]]; then 391 + return 0 392 + fi 393 + 394 + echo "♻️ update.sh was updated during pull. Restarting updater with newest logic..." 395 + 396 + restore_stash_if_needed 397 + trap - EXIT 398 + cleanup 399 + 400 + UPDATE_SH_REEXECED=1 exec bash "$SCRIPT_DIR/update.sh" "${ORIGINAL_ARGS[@]}" 401 + } 402 + 355 403 native_module_compatible() { 356 404 run_bun -e "try{require('better-sqlite3');process.exit(0)}catch(e){console.error(e && e.message ? e.message : e);process.exit(1)}" >/dev/null 2>&1 357 405 } ··· 555 603 ensure_bun_runtime 556 604 ensure_git_repo 557 605 606 + ORIGINAL_SCRIPT_CHECKSUM="$(compute_file_checksum "$SCRIPT_DIR/update.sh" 2>/dev/null || true)" 607 + 558 608 acquire_lock 559 609 trap cleanup EXIT 560 610 ··· 568 618 branch="$(resolve_branch "$remote")" 569 619 570 620 pull_latest "$remote" "$branch" 621 + reexec_with_latest_updater_if_changed 571 622 install_dependencies 572 623 rebuild_native_modules 573 624 build_project