#!/bin/bash
JAVA_HOME_TEST=$(/bin/cat /etc/profile | awk '/JAVA_HOME=/ { print $2 }' | tail -c +11)
# Determine BASE installation location according to smb.conf
BASE=
publicdir=`/sbin/getcfg Public path -f /etc/config/smb.conf`
if [ ! -z $publicdir ] && [ -d $publicdir ];then
publicdirp1=`/bin/echo $publicdir | /bin/cut -d "/" -f 2`
publicdirp2=`/bin/echo $publicdir | /bin/cut -d "/" -f 3`
publicdirp3=`/bin/echo $publicdir | /bin/cut -d "/" -f 4`
if [ ! -z $publicdirp1 ] && [ ! -z $publicdirp2 ] && [ ! -z $publicdirp3 ]; then
[ -d "/${publicdirp1}/${publicdirp2}/Public" ] && BASE="/${publicdirp1}/${publicdirp2}"
fi
fi
# Determine BASE installation location by checking where the Public folder is.
if [ -z $BASE ]; then
for datadirtest in /share/HDA_DATA /share/HDB_DATA /share/HDC_DATA /share/HDD_DATA /share/MD0_DATA; do
[ -d $datadirtest/Public ] && BASE="$datadirtest"
done
fi
if [ -z $BASE ] ; then
/bin/echo "The Public share not found."
exit
fi
CheckForOpt(){ #Does /opt exist? if not check if it's optware that's installed or opkg, and start the package
/bin/echo -n "Checking for /opt..."
if [ ! -d /opt/bin ]; then
if [ -x /etc/init.d/Optware.sh ]; then #if optware ,start optware
/bin/echo "Starting Optware..."
/etc/init.d/Optware.sh start
/bin/sleep 2
elif [ -x /etc/init.d/opkg.sh ]; then #if opkg, start opkg
/bin/echo "Starting Opkg..."
/etc/init.d/opkg.sh start
/bin/sleep 2
else #catch all
/bin/echo "No Optware or Opkg found, please install one of them"
/sbin/write_log "Failed to start $QPKG_NAME, no Optware or Opkg found. Please re-install one of those packages" 1
exit
fi
else
/bin/echo " Found!"
/bin/sleep 2
fi
}
pid_check() {
# Check if process is already running
PROCESS_PID=0
for pid in $(/bin/pidof java); do
# Try to find if the process is JDownloader
/bin/grep -q "JDownloader" /proc/$pid/cmdline
if [ $? -eq 0 ]; then
# Process found, save PID and exit loop
PROCESS_PID=$pid
break
fi
done
# Print result
/bin/echo "Pid of process = $PROCESS_PID"
}
Shutdown_jd2() { #kills a proces based on a PID in a given PID file
pid_check
if [[ $PROCESS_PID -eq 0 ]]; then
/bin/echo "java is not running?"
else
/bin/echo "Shutting down jd2... "
i=0
/bin/kill $PROCESS_PID
/bin/echo -n " Waiting for jd2 to shut down: "
while [ -d /proc/$PROCESS_PID ]; do
/bin/sleep 1
let i+=1
/bin/echo -n "$i, "
if [ $i = 45 ]; then
/bin/echo " Tired of waiting, killing jd2 now"
/bin/kill -9 $PROCESS_PID
exit 1
fi
done
/bin/echo "Done"
fi
}
jd2_check() {
if [ -z "$JAVA_HOME_TEST" ]; then
/bin/echo "Java PATH not found. Please install JRE QPKG from http://goo.gl/ayMIbE."
/bin/echo "NOTE: If you have just installed Java, close and reopen your session to update (putty)."
exit 1
else
export JAVA_HOME=$JAVA_HOME_TEST
fi
# Store JAVA binary path
JAVA_BIN=${JAVA_HOME_TEST}/bin/java
# Check if Java runs correctly
if ! $JAVA_BIN -version 2>&1 | /bin/grep -q "Java(TM)"; then
/bin/echo "Java does not run correctly. Please test the Java environment and try again."
exit 2
fi
}
countdown() {
local OLD_IFS="${IFS}"
IFS=":"
local ARR=( $1 ) ; shift
IFS="${OLD_IFS}"
local PREFIX="$*" ; [ -n "${PREFIX}" ] && PREFIX="${PREFIX} > "
local SECONDS=$(( (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2] ))
local START=$(date +%s)
local END=$((START + SECONDS))
local CUR=$START
while [[ $CUR -lt $END ]]
do
CUR=$(date +%s)
LEFT=$((END-CUR))
printf "\r${PREFIX}%02d:%02d:%02d" \
$((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))
/bin/sleep 1
done
printf "\nOk,riprendo con l'installazione\n"
}
jar_download() {
if /usr/bin/wget http://installer.jdownloader.org/JDownloader.jar -O $publicdir/jd2/JDownloader.jar 1>/dev/null 2>&1 ; then
/bin/echo "jd2 jar scaricato correttamente"
/bin/sleep 2
else
/bin/echo "Errore"
/bin/echo "Oops, Non sono riuscito a scaricare il file jar, potrebbe esserci un problema di rete, oppure altro."
exit
fi
}
qpkg_download() {
if /usr/bin/wget --no-check-certificate https://dl.dropboxusercontent.com/u/2668178/JDownloader2.qpkg -O $publicdir/JDownloader2.qpkg 1>/dev/null 2>&1 ; then
/bin/echo "jd2 qpkg scaricato correttamente"
/bin/sleep 2
else
/bin/echo "Errore"
/bin/echo "Oops, Non sono riuscito a scaricare il file qpkg, potrebbe esserci un problema di rete, oppure altro."
exit
fi
}
if [[ -d $publicdir/jd2 ]]; then
/bin/rm -r $publicdir/jd2
fi
if [[ -f $publicdir/JDownloader2.qpkg ]]; then
/bin/rm $publicdir/JDownloader2.qpkg
fi
umask 000
/bin/mkdir -p $publicdir/jd2
Shutdown_jd2
CheckForOpt
jd2_check
jar_download
cd $publicdir/jd2 && $JAVA_BIN -Djava.awt.headless=true -jar $publicdir/jd2/JDownloader.jar
countdown "00:05:00" "Attendi ancora"
Shutdown_jd2
cd $publicdir/jd2 && $JAVA_BIN -Djava.awt.headless=true -jar $publicdir/jd2/JDownloader.jar
qpkg_download
/bin/echo "Fatto, ora devi solo installare il qpkg e poi configurare per bene JD2 dall'interfaccia web!"