Files
local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh

77 lines
2.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Отправить файл на Fedora MacBook по Bluetooth (с этого Mac).
#
# Порядок:
# 1. FEDORA: Blueman → «Принять файл» (диалог «Ожидание…»)
# 2. MAC: bash send-to-fedora-bluetooth.sh [файл] [устройство]
# 3. MAC: Bluetooth File Exchange → fedora → Send
#
# Примеры:
# bash docs/old_mac/scripts/send-to-fedora-bluetooth.sh
# bash docs/old_mac/scripts/send-to-fedora-bluetooth.sh ~/Desktop/foo.tar.gz
# bash docs/old_mac/scripts/send-to-fedora-bluetooth.sh foo.tar.gz fedora
set -euo pipefail
OLD_MAC="$(cd "$(dirname "$0")/.." && pwd)"
DEFAULT_ARCHIVE="$OLD_MAC/deliverable/fedora-bcm4322-wifi-fix.tar.gz"
DEFAULT_DEVICE="fedora"
BFX="/System/Library/CoreServices/Bluetooth File Exchange.app"
die() { printf 'error: %s\n' "$*" >&2; exit 1; }
usage() {
cat <<EOF
usage: $0 [файл] [устройство_bluetooth]
файл путь к отправляемому файлу (по умолчанию: delivery-архив Wi-Fi fix)
устройство имя BT-устройства Fedora (по умолчанию: fedora)
Перед запуском на Fedora: Blueman → «Принять файл».
См. docs/old_mac/BLUETOOTH_FILE_TRANSFER.md
EOF
}
FILE=""
DEVICE="$DEFAULT_DEVICE"
case $# in
0) FILE="$DEFAULT_ARCHIVE" ;;
1)
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then usage; exit 0; fi
if [ -f "$1" ]; then
FILE="$1"
else
FILE="$DEFAULT_ARCHIVE"
DEVICE="$1"
fi
;;
2)
[ -f "$1" ] || die "файл не найден: $1"
FILE="$1"
DEVICE="$2"
;;
*) usage; exit 1 ;;
esac
[ -f "$FILE" ] || die "файл не найден: $FILE"
[ -d "$BFX" ] || BFX="/System/Applications/Utilities/Bluetooth File Exchange.app"
[ -d "$BFX" ] || die "Bluetooth File Exchange не найден"
MAC_BT="$(system_profiler SPBluetoothDataType 2>/dev/null || true)"
if ! printf '%s\n' "$MAC_BT" | grep -A1 "Connected:" | grep -qi "$DEVICE"; then
die "«$DEVICE» не в Connected. На Fedora: Bluetooth on, Trust этого Mac."
fi
printf '\n=== Отправка по Bluetooth ===\n\n'
printf 'СНАЧАЛА на Fedora: Blueman → «Принять файл».\n'
printf 'Без этого диалог приёма НЕ появится.\n\n'
printf 'Файл : %s (%s bytes)\n' "$FILE" "$(stat -f%z "$FILE" 2>/dev/null || stat -c%s "$FILE")"
printf 'Куда : %s\n\n' "$DEVICE"
printf 'Открываю Bluetooth File Exchange → выберите «%s» → Send.\n\n' "$DEVICE"
killall "Bluetooth File Exchange" 2>/dev/null || true
sleep 0.5
open -a "Bluetooth File Exchange" "$FILE"
printf 'Готово. Подтвердите отправку в окне Bluetooth File Exchange.\n'