diff options
| -rwxr-xr-x | blueman_open | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/blueman_open b/blueman_open index f51a881..9b08e0e 100755 --- a/blueman_open +++ b/blueman_open @@ -14,6 +14,11 @@ own_name=$(basename $0)  basedir=${basedir:-/mnt}  dir=${basedir}/$device_addr  browser=${browser:-"xdg-open"} +cleanup_script="#!/bin/bash\n +#cleanup bluetooth mount directories on shutdown / restart\n\n\ +fusermount -uz $dir\n +rm -rf $dir\nrm /etc/rc.d/rc0.d/$device_addr-cleanup.sh 1>/dev/null 2>/dev/null\n&\ +rm /etc/rc.d/rc6.d/$device_addr-cleanup.sh 1>/dev/null 2>/dev/null"  count=0 @@ -30,6 +35,17 @@ else      echo "0" > $p_file   fi +# fix broken pipe when unexpected error occurs + +trap killscript INT + +killscript() +{ +    echo "Initializing clean shutdown......" +    echo "100" > $p_file # kill gtk window +    exit 0 # kill script +} +  #gtkdialog abstraction  gtkbox_interactive() { @@ -114,6 +130,10 @@ mount_device ()        [ ! -z $DEBUG ] && logger -i -t $own_name "Open $dir with $browser"        out=$($browser $dir 2>&1)        [ ! -z $DEBUG ] && logger -i -t $own_name "$out" +      # setup cleanup script +      echo -e $cleanup_script > /etc/rc.d/rc0.d/$device_addr-cleanup.sh +      chmod +x /etc/rc.d/rc0.d/$device_addr-cleanup.sh +      ln -s /etc/rc.d/rc0.d/$device_addr-cleanup.sh /etc/rc.d/rc6.d/$device_addr-cleanup.sh        exit 0      else        logger -i -t $own_name "Failed to mount $device_addr to $dir from try $i " | 
