summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]blueman_open126
1 files changed, 84 insertions, 42 deletions
diff --git a/blueman_open b/blueman_open
index 50f05c3..a1982c4 100644..100755
--- a/blueman_open
+++ b/blueman_open
@@ -1,11 +1,19 @@
#!/bin/sh
+# varables
+
DEBUG=${DEBUG:-""}
+if [ ! -z $DEBUG ];then
+ dbg_msg="Check /var/log/messages for errors."
+else
+ dbg_msg="Enable *DEBUG* for error log."
+fi
-phone_addr=$1
+device_addr=$1
own_name=$(basename $0)
-dir=$(mktemp -d)/$phone_addr
+dir=$(mkdir)/mnt/$device_addr
browser=${browser:-"xdg-open"}
+count=0
# Check for kdialog
@@ -13,31 +21,27 @@ if which kdialog 1>/dev/null 2>/dev/null; then
messagetype="kdialog"
else
messagetype="gtkdialog"
+ export p_file="progress.tmp"
+ export m_file="message.tmp"
+ touch $p_file
+ touch $m_file
+ echo "0" > $p_file
fi
-# Abstract some stuff for gtkdialog
-gtkbox_passive() {
- export messagebox='
- <vbox>
- <frame Blueman Open Device.>
- <text>
- <label>"'$(printf $1)'"</label>
- </text>
- </frame>
- </vbox>
- '
-}
+#gtkdialog abstraction
+
gtkbox_interactive() {
export messagebox='
<vbox>
<frame Blueman Open Device.>
<text>
- <label>"'$(printf $1)'"</label>
+ <label>Mounting Bluetooth Devive ..</label>
</text>
- <hbox>
- <button ok></button>
- </hbox>
- </frame>
+ <progressbar>
+ <input>progress p_file</input>
+ <action type="exit">Done.</action>
+ </progressbar>
+ </frame>
</vbox>
'
}
@@ -48,56 +52,89 @@ gtkmessage() {
done
IFS=$I
}
+
+#gtkdialog progress counter
+
+if [ "$messagetype" = "gtkdialog" ]; then
+ progress(){
+ while :
+ do
+ sleep 0.3
+ percentage=$(cat $p_file)
+ text=$(cat $m_file)
+ echo $percentage
+ echo $text
+ if [ $percentage = 100 ]; then
+ rm *.tmp
+ exit 0
+ fi
+ done
+ }
+
+ message(){
+ echo $MSG_TXT > $m_file
+ }
+fi
+
+
+export -f progress
+
# End gtkdialog abstraction
# mount function
-mount_phone ()
+
+mount_device ()
{
i=0
LIMIT=5
while [ $i -lt $LIMIT ]
do
+ let count=$count+17
+ echo "$count" > $p_file
printf "$i "
- [ ! -z $DEBUG ] && logger -i -t $own_name "Perform $i try to mount phone $phone_addr to $dir using obexfs"
- [ ! -z $DEBUG ] && logger -i -t $own_name "Execute: obexfs -b $phone_addr -B 10 $dir"
- out=$(obexfs -b $phone_addr $dir 2>&1)
+ [ ! -z $DEBUG ] && logger -i -t $own_name "Perform $i try to mount device $device_addr to $dir using obexfs"
+ [ ! -z $DEBUG ] && logger -i -t $own_name "Execute: obexfs -b $device_addr -B 10 $dir"
+ out=$(obexfs -b $device_addr $dir 2>&1)
[ ! -z $DEBUG ] && logger -i -t $own_name "$out"
mounts=$(grep $dir /proc/mounts | wc -l)
[ ! -z $DEBUG ] && logger -i -t $own_name "Found $mounts mounted $dir inside /proc/mounts"
if [ $mounts -ne 0 ] ;then
- progress=99
- MSG_TXT="Successfully mounted $phone_addr to $dir"
+ MSG_TXT="Successfully mounted $device_addr to $dir"
if [ $messagetype == "kdialog" ]; then
kdialog --passivepopup "$MSG_TXT" 2
elif [ $messagetype == "gtkdialog" ]; then
- gtkbox_interactive $"$MSG_TXT"
- gtkmessage
+ message $"$MSG_TXT"
+ echo "99" > $p_file
+ sleep 2
+ echo "100" > $p_file
fi
[ ! -z $DEBUG ] && logger -i -t $own_name "Open $dir with $browser"
out=$($browser $dir 2>&1)
[ ! -z $DEBUG ] && logger -i -t $own_name "$out"
exit 0
else
- logger -i -t $own_name "Failed to mount $phone_addr to $dir from try $i "
+ logger -i -t $own_name "Failed to mount $device_addr to $dir from try $i "
fi
sleep 1
((i += 1))
done
if [ $mounts -eq 0 ] ;then
- MSG_TXT="Failed to mount $phone_addr to $dir.\nCheck /var/log/messages for errors."
+ MSG_TXT="Failed to mount $device_addr to $dir. $dbg_msg"
if [ $messagetype == "kdialog" ]; then
kdialog --passivepopup "$MSG_TXT" 4
elif [ $messagetype == "gtkdialog" ]; then
- gtkbox_interactive $"$MSG_TXT"
- gtkmessage
+ message $"$MSG_TXT"
+ echo "99" > $p_file
+ sleep 4
+ echo "100" > $p_file
fi
- killall gtkdialog
fi
}
# unmount function
-umount_phone ()
+
+umount_device ()
{
mounts=$(grep $dir /proc/mounts | wc -l)
if [ $mounts -ne 0 ] ;then
@@ -109,12 +146,14 @@ umount_phone ()
[ ! -z $DEBUG ] && 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."
- MSG_TXT="Failed to umount $dir - check /var/log/messages for errors"
+ MSG_TXT="Failed to umount $dir - $dbg_msg"
if [ $messagetype == "kdialog" ]; then
kdialog --passivepopup "$MSG_TXT" 4
elif [ $messagetype == "gtkdialog" ]; then
- gtkbox_interactive $"$MSG_TXT"
- gtkmessage
+ message $"$MSG_TXT"
+ echo "99" > $p_file
+ sleep 4
+ count=5
fi
exit
fi
@@ -124,23 +163,26 @@ umount_phone ()
}
# mkdir function
+
create_dir ()
{
- progress=1
- [ ! -z $DEBUG ] && logger -i -t $own_name "Create directory $dir to mount the phone by bluetooth..."
+ [ ! -z $DEBUG ] && logger -i -t $own_name "Create directory $dir to mount the device by bluetooth..."
out=$(mkdir -p $dir 2>&1)
[ ! -z $DEBUG ] && logger -i -t $own_name "$out"
}
-MSG_TXT="Mount phone is in progress... Please wait..."
+#main
+
+MSG_TXT="Mount device is in progress... Please wait..."
if [ $messagetype == "kdialog" ]; then
kdialog --passivepopup "$MSG_TXT" 4
elif [ $messagetype == "gtkdialog" ]; then
- gtkbox_passive $"$MSG_TXT"
+ message $"$MSG_TXT"
+ gtkbox_interactive
gtkmessage&
fi
create_dir
-umount_phone
-mount_phone
+umount_device
+mount_device