#!/bin/bash
# Installation runs under /tmp and stores files to <home>/.auto_dl, /opt/auto_dl, /etc/init.d
# Author: ajaaskel(at)forum.ubuntu-fi.org  temp001(at)pp.inet.fi
#
# A script to install Auto DL.
#
# Ver 1.0  2012-09-12	First version
# Ver 1.1  2012-09-16	set_owner_group tempdir fixed 
# Ver 1.11 2012-09-17   Show all "Video?"
# Ver 1.2  2012-10-01   Setup checker "adl_chk" included
# Ver 1.3  2012-10-14   SysV defaults fix
# Ver 1.4  2013-08-09   loadmon included
#
################################################################################################
GET_DESKTOP()
#Detect desktop
{
if [ $(pgrep -c gnome-session) != 0 ] ; then
  DESKTOP="gnome"
elif [ $(pgrep -c ksmserver) != 0 ] ; then
  DESKTOP="kde"
elif [ $(pgrep -c xfce-msc-manage) != 0 ] ; then
  DESKTOP="xfce"
else
DESKTOP="unknown"
fi
}

GET_SUDO()
#Which graphical sudo to use ?
{
GET_DESKTOP
if [ "$DESKTOP" = "gnome" ] ; then
_SUDO="gksudo"
elif [ "$DESKTOP" = "kde" ] ; then
_SUDO="kdesudo"
else
_SUDO="sudo"
fi
}

set_owner_group()
{
tempdir="/tmp/autodl"
mkdir -p $tempdir/allusers	#Temporary list of users	
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $1 }' | xargs -r -n 1 -I{} sudo touch /$tempdir/allusers/{} 	
for pathfile in /home/* 
do
	usr=$(echo ${pathfile##*/})
	if [ -f $tempdir/allusers/$usr ]; then 
		export usr
		echo "Käyttäjätunnus: "$usr
		echo "Kotihakemisto: "$pathfile
		sudo -E bash -c 'chown -R $usr:$usr /home/$usr/.mozilla/*/*.default/chrome /home/$usr/.auto_dl /home/$usr/Video?'
		sudo -E bash -c 'chmod g+s /home/$usr/Video?' #Group inheritance for new files
		sudo -E bash -c 'ls -ld /home/$usr/.mozilla/*/*.default/chrome'
		sudo -E bash -c 'ls -ld /home/$usr/.auto_dl'
		sudo -E bash -c 'ls -ld /home/$usr/Video?'
		echo
	fi
done
rm -rf $tempdir/allusers
echo
}

# Main ##############################
cd ~
GET_SUDO
$_SUDO "Auto DL -- RSS syötettä seuraava nauhoitus"

#Create "/chrome" dir for each user if missing
sudo find /home/*/.mozilla -name "*.default" -prune | xargs -r -n 1 -I{} sudo mkdir -p {}/chrome 2>/dev/null

#Check for existence of "/Videot" or "/Videos" dir and create it if missing
if [ ! -d ~/Video? ]  
then
mkdir -p ~/Videot
#Check if succesful
if [ -d ~/Video? ]
then
echo "Found video directory " ~/Video?
else
echo "Could not find directory " ~/Video_ ", please create it manually."
exit 1
fi
fi

#Get needed files and make setup for Launchy to show extended Areena download menu
mkdir -p /tmp/autodl
cd /tmp/autodl
rm /tmp/autodl/autodl.zip 2>/dev/null
wget --no-cache http://www.homelinuxpc.com/download/autodl.zip
unzip -o autodl.zip
chmod +x launchy.xml autodld auto_dld get_feed new_jobs edit_jobs xml2tsv* loadmon
#Create <home>/.auto_dl directory and copy files 
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $6 }' | xargs -r -n 1 -I{} sudo mkdir -p {}/.auto_dl 2>/dev/null
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $6 }' | xargs -r -n 1 -I{} sudo cp -p /tmp/autodl/new_jobs {}/.auto_dl
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $6 }' | xargs -r -n 1 -I{} sudo cp -p /tmp/autodl/edit_jobs {}/.auto_dl
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $6 }' | xargs -r -n 1 -I{} sudo cp -p /tmp/autodl/xml2tsv* {}/.auto_dl
cat /etc/passwd | grep "/home/" | awk -F':' '{ if ( $3 >= 500 ) print $6 }' | xargs -r -n 1 -I{} sudo cp -p /tmp/autodl/adl_chk {}/.auto_dl

#Copy extended "launchy.xml" to "/chrome" directories for all users
sudo find /home/*/.mozilla -name "*.default" -prune | xargs -r -n 1 -I{} sudo cp launchy.xml {}/chrome
#Show result
echo
sudo find /home/*/.mozilla -wholename "*/chrome/launchy.xml" -prune
echo
set_owner_group
#Daemon installation
sudo mkdir -p /opt/auto_dl 
sudo cp /tmp/autodl/auto_dld /opt/auto_dl
sudo cp /tmp/autodl/get_feed /opt/auto_dl
sudo cp /tmp/autodl/loadmon /opt/auto_dl
sudo cp /tmp/autodl/xml2tsv* /opt/auto_dl
sudo cp /tmp/autodl/autodld /etc/init.d
sudo update-rc.d -f autodld remove &>/dev/null
sudo update-rc.d autodld defaults 90 10
sudo service autodld restart
~/.auto_dl/adl_chk


