158 lines
5.6 KiB
Bash
158 lines
5.6 KiB
Bash
#!/bin/bash
|
|
export DISPLAY=:99
|
|
export XAUTHORITY=${DATA_DIR}/.Xauthority
|
|
|
|
echo "---Checking for 'runtime' folder---"
|
|
if [ ! -d ${DATA_DIR}/runtime ]; then
|
|
echo "---'runtime' folder not found, creating...---"
|
|
mkdir ${DATA_DIR}/runtime
|
|
else
|
|
echo "---'runtime' folder found---"
|
|
fi
|
|
|
|
echo "---Checking if Runtime is installed---"
|
|
if [ -z "$(find ${DATA_DIR}/runtime -name jre*)" ]; then
|
|
if [ "${RUNTIME_NAME}" == "basicjre" ]; then
|
|
echo "---Downloading and installing Runtime---"
|
|
cd ${DATA_DIR}/runtime
|
|
if wget -q -nc --show-progress --progress=bar:force:noscroll https://github.com/ich777/runtimes/raw/master/jre/basicjre.tar.gz ; then
|
|
echo "---Successfully downloaded Runtime!---"
|
|
else
|
|
echo "---Something went wrong, can't download Runtime, putting server in sleep mode---"
|
|
sleep infinity
|
|
fi
|
|
tar --directory ${DATA_DIR}/runtime -xvzf ${DATA_DIR}/runtime/basicjre.tar.gz
|
|
rm -R ${DATA_DIR}/runtime/basicjre.tar.gz
|
|
else
|
|
if [ ! -d ${DATA_DIR}/runtime/${RUNTIME_NAME} ]; then
|
|
echo "---------------------------------------------------------------------------------------------"
|
|
echo "---Runtime not found in folder 'runtime' please check again! Putting server in sleep mode!---"
|
|
echo "---------------------------------------------------------------------------------------------"
|
|
sleep infinity
|
|
fi
|
|
fi
|
|
else
|
|
echo "---Runtime found---"
|
|
fi
|
|
|
|
echo "---Checking for 'jDownloader.jar'---"
|
|
if [ ! -f ${DATA_DIR}/JDownloader.jar ]; then
|
|
echo "---'jDownloader.jar' not found, copying...---"
|
|
cd ${DATA_DIR}
|
|
cp /tmp/JDownloader.jar ${DATA_DIR}/JDownloader.jar
|
|
if [ ! -f ${DATA_DIR}/JDownloader.jar ]; then
|
|
echo "--------------------------------------------------------------------------------------"
|
|
echo "---Something went wrong can't copy 'jDownloader.jar', putting server in sleep mode!---"
|
|
echo "--------------------------------------------------------------------------------------"
|
|
sleep infinity
|
|
fi
|
|
else
|
|
echo "---'jDownloader.jar' folder found---"
|
|
fi
|
|
|
|
echo "---Preparing Server---"
|
|
export RUNTIME_NAME="$(ls -d ${DATA_DIR}/runtime/* | cut -d '/' -f4)"
|
|
|
|
echo "---Checking libraries---"
|
|
if [ ! -d ${DATA_DIR}/libs ]; then
|
|
mkdir ${DATA_DIR}/libs
|
|
fi
|
|
if [ ! -f ${DATA_DIR}/libs/sevenzipjbinding1509Linux.jar ]; then
|
|
cd ${DATA_DIR}/libs
|
|
if [ ! -f ${DATA_DIR}/libs/lib.tar.gz ]; then
|
|
cp /tmp/lib.tar.gz ${DATA_DIR}/libs/lib.tar.gz
|
|
fi
|
|
if [ -f ${DATA_DIR}/libs/lib.tar.gz ]; then
|
|
tar -xf ${DATA_DIR}/libs/lib.tar.gz
|
|
rm ${DATA_DIR}/libs/lib.tar.gz
|
|
fi
|
|
else
|
|
echo "---Libraries found!---"
|
|
fi
|
|
if [ ! -f ${DATA_DIR}/libs/sevenzipjbinding1509.jar ]; then
|
|
cd ${DATA_DIR}/libs
|
|
if [ ! -f ${DATA_DIR}/libs/lib.tar.gz ]; then
|
|
cp /tmp/lib.tar.gz ${DATA_DIR}/libs/lib.tar.gz
|
|
fi
|
|
if [ -f ${DATA_DIR}/libs/lib.tar.gz ]; then
|
|
tar -xf ${DATA_DIR}/libs/lib.tar.gz
|
|
rm ${DATA_DIR}/libs/lib.tar.gz
|
|
fi
|
|
fi
|
|
|
|
echo "---Checking for old logfiles---"
|
|
find $DATA_DIR -name "XvfbLog.*" -exec rm -f {} \;
|
|
find $DATA_DIR -name "x11vncLog.*" -exec rm -f {} \;
|
|
echo "---Checking for old display lock files---"
|
|
rm -rf /tmp/.X99*
|
|
rm -rf /tmp/.X11*
|
|
rm -rf ${DATA_DIR}/.vnc/*.log ${DATA_DIR}/.vnc/*.pid
|
|
chmod -R ${DATA_PERM} ${DATA_DIR}
|
|
if [ -f ${DATA_DIR}/.vnc/passwd ]; then
|
|
chmod 600 ${DATA_DIR}/.vnc/passwd
|
|
fi
|
|
|
|
echo "---Resolution check---"
|
|
if [ -z "${CUSTOM_RES_W} ]; then
|
|
CUSTOM_RES_W=1024
|
|
fi
|
|
if [ -z "${CUSTOM_RES_H} ]; then
|
|
CUSTOM_RES_H=768
|
|
fi
|
|
|
|
if [ "${CUSTOM_RES_W}" -le 1024 ]; then
|
|
echo "---Width to low must be a minimal of 1024 pixels, correcting to 1024...---"
|
|
CUSTOM_RES_W=1024
|
|
fi
|
|
if [ "${CUSTOM_RES_H}" -le 768 ]; then
|
|
echo "---Height to low must be a minimal of 768 pixels, correcting to 768...---"
|
|
CUSTOM_RES_H=768
|
|
fi
|
|
|
|
if [ ! -d ${DATA_DIR}/cfg ]; then
|
|
mkdir ${DATA_DIR}/cfg
|
|
fi
|
|
|
|
if [ ! -f "${DATA_DIR}/cfg/org.jdownloader.settings.GraphicalUserInterfaceSettings.lastframestatus.json" ]; then
|
|
cd "${DATA_DIR}/cfg"
|
|
touch "org.jdownloader.settings.GraphicalUserInterfaceSettings.lastframestatus.json"
|
|
echo '{
|
|
"extendedState" : "NORMAL",
|
|
"width" : '${CUSTOM_RES_W}',
|
|
"height" : '${CUSTOM_RES_H}',
|
|
"x" : 0,
|
|
"visible" : true,
|
|
"y" : 0,
|
|
"silentShutdown" : false,
|
|
"screenID" : ":0.0",
|
|
"locationSet" : true,
|
|
"focus" : true,
|
|
"active" : true
|
|
}' >> "${DATA_DIR}/cfg/org.jdownloader.settings.GraphicalUserInterfaceSettings.lastframestatus.json"
|
|
fi
|
|
|
|
sed -i '/"width"/c\ "width" : '${CUSTOM_RES_W}',' "${DATA_DIR}/cfg/org.jdownloader.settings.GraphicalUserInterfaceSettings.lastframestatus.json"
|
|
sed -i '/"height"/c\ "height" : '${CUSTOM_RES_H}',' "${DATA_DIR}/cfg/org.jdownloader.settings.GraphicalUserInterfaceSettings.lastframestatus.json"
|
|
if [ ! -f "${DATA_DIR}/cfg/org.jdownloader.settings.GeneralSettings.json" ]; then
|
|
cd "${DATA_DIR}/cfg"
|
|
touch "org.jdownloader.settings.GeneralSettings.json"
|
|
echo '{
|
|
"defaultdownloadfolder" : "/mnt/jDownloader"
|
|
}' >> "${DATA_DIR}/cfg/org.jdownloader.settings.GeneralSettings.json"
|
|
fi
|
|
sed -i '/Downloads"/c\ "defaultdownloadfolder" : "\/mnt\/jDownloader",' "${DATA_DIR}/cfg/org.jdownloader.settings.GeneralSettings.json"
|
|
echo "---Window resolution: ${CUSTOM_RES_W}x${CUSTOM_RES_H}---"
|
|
|
|
echo "---Starting TurboVNC server---"
|
|
vncserver -geometry ${CUSTOM_RES_W}x${CUSTOM_RES_H} -depth ${CUSTOM_DEPTH} :99 -rfbport ${RFB_PORT} -noxstartup -noserverkeymap ${TURBOVNC_PARAMS} 2>/dev/null
|
|
sleep 2
|
|
echo "---Starting Fluxbox---"
|
|
screen -d -m env HOME=/etc /usr/bin/fluxbox
|
|
sleep 2
|
|
echo "---Starting noVNC server---"
|
|
websockify -D --web=/usr/share/novnc/ --cert=/etc/ssl/novnc.pem ${NOVNC_PORT} localhost:${RFB_PORT}
|
|
sleep 2
|
|
|
|
echo "---Starting jDownloader2---"
|
|
cd ${DATA_DIR}
|
|
eval ${DATA_DIR}/runtime/${RUNTIME_NAME}/bin/java ${EXTRA_JVM_PARAMS} -jar ${DATA_DIR}/JDownloader.jar |