#!/bin/bash
#rcrsn51 2011-09-15
#v1.3 2012-06-24
#gettexted by esmourguit february 2013

export TEXTDOMAIN=yassm
export OUTPUT_CHARSET=UTF-8

WAIT=20
while [ "$WAIT" -gt 0 ]; do
  NETWORK=$(route -n | awk '/^[0-9]/ && ($1 !~ /^0.0/) && ($1 !~ /^127.0/) && ($1 !~ /^169.254/) {print $1}')
  [ "$NETWORK" ] && break
  sleep 1
  ((WAIT--))
done

if [ -z "$NETWORK" ]; then
  Xdialog --title "YASSM" --msgbox "$(gettext 'No network detected!')" 0 0
  exit 1
fi

process () {

LINE=$1
USER=`echo $LINE | cut -d "," -f 2 | tr -d " "`
PASSWORD=`echo $LINE | cut -d "," -f 3 | tr -d " "`
[ "$PASSWORD" = "***" ] && PASSWORD=$(Xdialog --stdout --title "YASSM" --password --inputbox "Password for $USER" 0 0)
SHARE=`echo $LINE | cut -d "," -f 4 | tr -d " "`
SERVER=`echo $LINE | cut -d "," -f 5 | tr -d " "`
OPTIONS=`echo $LINE | cut -d "," -f 6 | tr -d " " | tr ";" ","`

if [ -z "$SHARE" ]; then
  SHARE=$USER
fi

[ -z "$USER" ] && USER="guest"
AUTH="-o username="$USER
if [ -n "$PASSWORD" ]; then
  AUTH=$AUTH",password="$PASSWORD
else
  AUTH=$AUTH",guest"
fi

if [ -n "$OPTIONS" ]; then
  AUTH=$AUTH","$OPTIONS
fi

MYSHARE=$HOME/YASSM/$SHARE@$SERVER
MYSHARE="${MYSHARE// /.}"
mkdir -p $MYSHARE
umount $MYSHARE 2> /dev/null   #in case it's already mounted

echo $SERVER | grep -q "?"
if [ $? -gt 0 ]; then
  IP=`nmblookup $SERVER | tail -n 1 | cut -f 1 -d " "`
  [ "$IP" = "name_query" ] && IP=$SERVER
else
  SUBNET=${SERVER#*\?}
  SERVER=${SERVER%\?*}
  . /usr/local/yassm/server2ip-func
  IP=$(SERVER2IP $SERVER $SUBNET)
fi

SHARE="${SHARE//./ }"
mount.cifs //$IP/"$SHARE" $MYSHARE $AUTH

}

DATA=$HOME/.config/yassm/samba-select.dat
[ -f $DATA ] || exit 1
tail -n+10 $DATA | sed 's/none//g' > /tmp/shares.dat     # strip off the instructions

while read L; do
  [ "$L" = "EOF" ] && break
  process "$L"
done </tmp/shares.dat

ls $HOME/YASSM > /dev/null
Xdialog --title "YASSM" --infobox "$(gettext 'Share mounting completed')" 0 0 2000
