56 lines
1005 B
Bash
56 lines
1005 B
Bash
#!/bin/bash
|
|
|
|
CFG="$HOME/.config/obt.conf"
|
|
|
|
# ensure config file exists
|
|
mkdir -p "$(dirname "$CFG")"
|
|
[[ -e $CFG ]] || touch "$CFG"
|
|
|
|
read -r ADDR < "$CFG"
|
|
|
|
init() {
|
|
# save address if not set and argument is not a command
|
|
if [[ -z $ADDR && $1 != c && $1 != d ]]; then
|
|
ADDR=$1
|
|
echo "$ADDR" > "$CFG"
|
|
fi
|
|
|
|
echo "trusting..."
|
|
bluetoothctl trust "$ADDR"
|
|
echo "pairing..."
|
|
bluetoothctl pair "$ADDR"
|
|
echo "done!"
|
|
}
|
|
|
|
connect() {
|
|
bluetoothctl connect "$ADDR"
|
|
}
|
|
|
|
disconnect() {
|
|
bluetoothctl disconnect "$ADDR"
|
|
}
|
|
|
|
usage() {
|
|
echo "usage:"
|
|
echo " $0 <BT_ADDRESS> # pair + trust + save"
|
|
echo " $0 c # connect"
|
|
echo " $0 d # disconnect"
|
|
exit 1
|
|
}
|
|
|
|
[[ $# -eq 0 ]] && usage
|
|
|
|
case "$1" in
|
|
c)
|
|
[[ -z $ADDR ]] && echo "no saved address" && exit 1
|
|
connect
|
|
;;
|
|
d)
|
|
[[ -z $ADDR ]] && echo "no saved address" && exit 1
|
|
disconnect
|
|
;;
|
|
*)
|
|
init "$1"
|
|
;;
|
|
esac
|