#!/bin/bash

# nokiasync.sh – script to synchronize data to and from Nokia handset.
# reads the images and videos from handsets and synchronizes music files to handset.
# Synchronizes also POI data to TomTom in memory card
# Usage: kannysync.sh <device> <name for image dir>

# exit on errors
set -e


# where the getpoi script is:
GETPOI=/home/pulk/.local/bin/getpoi.sh

# source dirs
MUSICSOURCE=/home/files/nobackup/nokia/poppi
RINGSOURCE=/home/files/nobackup/nokia/ringtone

# where to put images & videos
IROOT=/home/files/digikamera/kannykuvat

# directories in memory card
KAMDIR=Images
VIDDIR=Videos

if [ $1 ]; then true; else echo "Usage: $0 device [picturedir]";exit 1; fi

# device name from 1st parameter
DEVICE=$1

# where to mount
MOUNTTI=/media/nokia

# where the music should be
POPPI=Sounds/poppi
RING=Sounds/ringtone

# where the POI data is
POISRC=/home/files/nobackup/nokia/poi
POI=ScandinaviaV652.1204-Map

# are there images or not?
IMGVID=false

if [ $2 ]; then LISA=$2; else LISA=kuvia; fi

FULLDIR=$IROOT/`date +%Y-%m-%d.`$LISA/

if test -d $FULLDIR; then 
	echo "Directory exists. Figure out a new name.";
	exit 1;
fi

echo -n "Mounting memory card: "
sudo mount -v -t vfat -o uid=1000,gid=44,umask=027,utf8 $DEVICE $MOUNTTI

if [ $LISA = "muut" ]; then
    FULLDIR=$IROOT/muut/
    echo "All pictures will go to $FULLDIR."
fi

# TODO: how to check if there are files to be copied?

echo "Copying images:"
if [ -f "`ls $MOUNTTI/$KAMDIR/20*/20*/*.jpg|head -1`" ]; then
 echo -n "Creating dir $FULLDIR: "
 mkdir -p -m 770 $FULLDIR
  for hake in `ls $MOUNTTI/$KAMDIR|grep -v _PAlbTN`
  do
    for hake2 in `ls $MOUNTTI/$KAMDIR/$hake|grep -v _PAlbTN`
    do
      mv -v $MOUNTTI/$KAMDIR/$hake/$hake2/*.jpg $FULLDIR
    done
  done
  rm -r $MOUNTTI/$KAMDIR/*
  IMGVID=true
fi


echo "Copying videos: "
if [ -f "`ls $MOUNTTI/$VIDDIR/20*/20*/*.mp4|head -1`" ];then

  mkdir -p -m 770 $FULLDIR/video
  for hake in `ls $MOUNTTI/$VIDDIR|grep -v _PAlbTN`
  do
    for hake2 in `ls $MOUNTTI/$VIDDIR/$hake|grep -v _PAlbTN`
    do
      mv -v $MOUNTTI/$VIDDIR/$hake/$hake2/*.mp4 $FULLDIR/video
    done
  done
  rm -r $MOUNTTI/$VIDDIR/*
  IMGVID=true
fi

echo $IMGVID|grep true && ( echo -n "Changing file permissions: "; find $FULLDIR -type f | xargs chmod 660; chmod -v 770 $FULLDIR; chgrp -vR video $FULLDIR)

echo "Synchronizing music collection:"

nice -n 19 rsync --delete --modify-window=2 -rtv $MUSICSOURCE/ $MOUNTTI/$POPPI
nice -n 19 rsync --delete --modify-window=2 -rtv $RINGSOURCE/ $MOUNTTI/$RING

echo "getting new POI versions:"
$GETPOI

echo "Synchronizing POI data:"
#rm $MOUNTTI/$POI/*ameratolpat_*
nice -n 19 rsync --modify-window=2 -rtv $POISRC/ $MOUNTTI/$POI

echo "ready."
echo ""

# using kdeeject instead of umount – it makes phone to show “cable can now be removed” on the UI.
echo -n "Umounting memory card: "
#sudo umount -v $MOUNTTI
kdeeject $DEVICE
echo "Done."

exit 0

