77 lines
2.7 KiB
Bash
Executable File
77 lines
2.7 KiB
Bash
Executable File
#!/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'
|