#!/bin/bash phone_addr=$1 own_name=$(basename $0) dir=$(mktemp -d)/$phone_addr browser=${browser:-"xdg-open"} # Check for kdialog if which kdialog &>/dev/null; then messagetype="kdialog2" else messagetype="gtkdialog" fi # gtkdialog stuff function gtkbox1() { export messagebox=' ' } function gtkbox2() { export messagebox=' ' } function gtkmessage() { I=$IFS; IFS="" for STATEMENT in $(gtkdialog --center --program=messagebox); do eval $STATEMENT done IFS=$I } #mount function mount_phone () { i=0 LIMIT=5 while [ $i -lt $LIMIT ] do printf "$i " logger -i -t $own_name "Perform $i try to mount phone $phone_addr to $dir using obexfs" logger -i -t $own_name "Execute: obexfs -b $phone_addr -B 10 $dir" out=$(obexfs -b $phone_addr $dir 2>&1) logger -i -t $own_name "$out" mounts=$(grep $dir /proc/mounts | wc -l) logger -i -t $own_name "Found $mounts mounted $dir inside /proc/mounts" if [ $mounts -ne 0 ] ;then progress=99 if [ $messagetype == "kdialog" ]; then kdialog --passivepopup "Successfully mounted $phone_addr to $dir" 2 else gtkbox2 $"Successfully mounted $phone_addr to $dir" gtkmessage fi logger -i -t $own_name "Open $dir with $browser" out=$($browser $dir 2>&1) logger -i -t $own_name "$out" exit 0 else logger -i -t $own_name "Failed to mount $phone_addr to $dir from the $i try" fi sleep 1 ((i += 1)) done if [ $mounts -eq 0 ] ;then if [ $messagetype == "kdialog" ]; then kdialog --passivepopup "Failed to mount $phone_addr to $dir.\nCheck /var/log/messages for errors." 4 else gtkbox2 $"Failed to mount $phone_addr to $dir. Check /var/log/messages for errors." gtkmessage fi killall gtkdialog fi } #unmount function umount_phone () { mounts=$(grep $dir /proc/mounts | wc -l) if [ $mounts -ne 0 ] ;then logger -i -t $own_name "Perform umount of $dir if it's already mounted." out=$(fusermount -uz $dir 2>&1) logger -i -t $own_name "$out" mounts=$(cat /proc/mounts |grep $dir|wc -l) if [ $mounts -eq 0 ] ;then logger -i -t $own_name "Successfully unmounted $dir." else logger -i -t $own_name "$dir is already mounted. Failed to umount $dir.$out. Please perform its umount manually." if [ $messagetype == "kdialog" ]; then kdialog --passivepopup "Failed to umount $dir - check /var/log/messages for errors" 4 else gtkbox2 $"Failed to umount $dir - check /var/log/messages for errors" gtkmessage fi exit fi else logger -i -t $own_name "$dir is not mounted - no need to perform umount..." fi } #mkdir function create_dir () { progress=1 logger -i -t $own_name "Create directory $dir to mount the phone by bluetooth..." out=$(mkdir -p $dir 2>&1) logger -i -t $own_name "$out" } if [ $messagetype == "kdialog" ]; then kdialog --passivepopup "Mount phone is in progress... Please wait..." 4 else gtkbox1 $"Mount phone is in progress... Please wait..." gtkmessage& fi create_dir umount_phone mount_phone