This repository has been archived on 2024-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
Files
docker-magicmirror2/scripts/start-server.sh

240 lines
8.2 KiB
Bash

#!/bin/bash
echo "+--- WARNING --- WARNING --- WARNING ---"
echo "|"
echo "| This container is deprecated and not"
echo "| maintained any longer! The container"
echo "| will continue the start in 10 seconds."
echo "|"
echo "+--- WARNING --- WARNING --- WARNING ---"
sleep 10
CUR_V="$(find ${DATA_DIR} -maxdepth 1 -name installedv* | cut -d 'd' -f2)"
LAT_V="$(curl -sL https://api.github.com/repos/MichMich/MagicMirror/releases/latest | grep tag_name | cut -d '"' -f4)"
if [ -z $LAT_V ]; then
if [ ! -z "$CUR_V" ]; then
echo "---Can't get latest version of uNmINeD-GUI falling back to v$CUR_V---"
LAT_V="$CUR_V"
else
echo "---Can't get latest version number, putting server into sleep mode---"
sleep infinity
fi
fi
if [ "${FORCE_UPDATE}" == "true" ]; then
echo "---Force Update enabled!---"
if [ -z "$CUR_V" ]; then
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O $LAT_V.tar.gz https://github.com/MichMich/MagicMirror/archive/$LAT_V.tar.gz ; then
echo "---Successfully downloaded MagicMirror² $LAT_V!---"
else
echo "---Something went wrong, can't download Magic Mirror² $LAT_V, putting server in sleep mode---"
sleep infinity
fi
tar -xvf $LAT_V.tar.gz
mv ${DATA_DIR}/MagicMirror*/* ${DATA_DIR}/
rm -R ${DATA_DIR}/MagicMirror*
rm -R ${DATA_DIR}/$LAT_V.tar.gz
touch ${DATA_DIR}/installed$LAT_V
if [ ! -f ${DATA_DIR}/modules/modules.txt ]; then
cp /tmp/modules.txt ${DATA_DIR}/modules/modules.txt
fi
else
mkdir -p /tmp/Backup
cd /tmp/Backup
if wget -q -nc --show-progress --progress=bar:force:noscroll -O $LAT_V.tar.gz https://github.com/MichMich/MagicMirror/archive/$LAT_V.tar.gz ; then
echo "---Successfully downloaded MagicMirror² $LAT_V!---"
else
echo "---Something went wrong, can't download MagicMirror² $LAT_V, putting server in sleep mode---"
sleep infinity
fi
mv ${DATA_DIR}/config /tmp/Backup/
mv ${DATA_DIR}/modules /tmp/Backup/
rm -R ${DATA_DIR}/*
rm -R ${DATA_DIR}/.*
mv /tmp/Backup/$LAT_V.tar.gz ${DATA_DIR}
cd ${DATA_DIR}
tar -xvf $LAT_V.tar.gz
mv ${DATA_DIR}/MagicMirror*/* ${DATA_DIR}/
rm -R ${DATA_DIR}/MagicMirror*
rm -R ${DATA_DIR}/$LAT_V.tar.gz
rm -R ${DATA_DIR}/config
rm -R ${DATA_DIR}/modules
mv /tmp/Backup/config ${DATA_DIR}/
mv /tmp/Backup/modules ${DATA_DIR}/
rm -R /tmp/Backup
touch ${DATA_DIR}/installed$LAT_V
if [ ! -f ${DATA_DIR}/modules/modules.txt ]; then
cp /tmp/modules.txt ${DATA_DIR}/modules/modules.txt
fi
fi
else
if [ -z "$CUR_V" ]; then
echo "---MagicMirror² not found!---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O $LAT_V.tar.gz https://github.com/MichMich/MagicMirror/archive/$LAT_V.tar.gz ; then
echo "---Successfully downloaded MagicMirror² $LAT_V!---"
else
echo "---Something went wrong, can't download Magic Mirror² $LAT_V, putting server in sleep mode---"
sleep infinity
fi
tar -xvf $LAT_V.tar.gz
mv ${DATA_DIR}/MagicMirror*/* ${DATA_DIR}/
rm -R ${DATA_DIR}/MagicMirror*
rm -R ${DATA_DIR}/$LAT_V.tar.gz
touch ${DATA_DIR}/installed$LAT_V
if [ ! -f ${DATA_DIR}/modules/modules.txt ]; then
cp /tmp/modules.txt ${DATA_DIR}/modules/modules.txt
fi
elif [ "$LAT_V" != "$CUR_V" ]; then
echo "---Newer version found, installing!---"
mkdir -p /tmp/Backup
cd /tmp/Backup
if wget -q -nc --show-progress --progress=bar:force:noscroll -O $LAT_V.tar.gz https://github.com/MichMich/MagicMirror/archive/$LAT_V.tar.gz ; then
echo "---Successfully downloaded MagicMirror² $LAT_V!---"
else
echo "---Something went wrong, can't download MagicMirror² $LAT_V, putting server in sleep mode---"
sleep infinity
fi
mv ${DATA_DIR}/config /tmp/Backup/
mv ${DATA_DIR}/modules /tmp/Backup/
rm -R ${DATA_DIR}/*
rm -R ${DATA_DIR}/.*
mv /tmp/Backup/$LAT_V.tar.gz ${DATA_DIR}
cd ${DATA_DIR}
tar -xvf $LAT_V.tar.gz
mv ${DATA_DIR}/MagicMirror*/* ${DATA_DIR}/
rm -R ${DATA_DIR}/MagicMirror*
rm -R ${DATA_DIR}/$LAT_V.tar.gz
rm -R ${DATA_DIR}/config
rm -R ${DATA_DIR}/modules
mv /tmp/Backup/config ${DATA_DIR}/
mv /tmp/Backup/modules ${DATA_DIR}/
rm -R /tmp/Backup
touch ${DATA_DIR}/installed$LAT_V
if [ ! -f ${DATA_DIR}/modules/modules.txt ]; then
cp /tmp/modules.txt ${DATA_DIR}/modules/modules.txt
fi
elif [ "$LAT_V" == "$CUR_V" ]; then
echo "---MagicMirror² up-to-date---"
else
echo "---Something went wrong, putting server in sleep mode---"
sleep infinity
fi
fi
echo "---Looking for new modules to install---"
modules=${DATA_DIR}/modules/modules.txt
if [ ! -d ${DATA_DIR}/.npm ]; then
echo "---Updating all modules---"
grep -v '^\s*$\|^#\|^\s*\#' < $modules | {
while read -r line
do
if [ ! -d ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")" ]; then
if [[ $line = \Y* ]]; then
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//Y /}
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
npm init -y
npm install request --save
git submodule update --init --recursive
else
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//N /}
git submodule update --init --recursive
fi
else
if [[ $line = \Y* ]]; then
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
echo "---Updating '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git pull
npm init -y
npm install request --save
git submodule update --init --recursive
else
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
echo "---Updating '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git pull
git submodule update --init --recursive
fi
fi
done; }
echo "---Installing, this can take some time please stand by...---"
cd ${DATA_DIR}
npm install
elif [ "${FORCE_UPDATE_MODULES}" == "true" ]; then
echo "---Force Update Modules enabled!---"
grep -v '^\s*$\|^#\|^\s*\#' < $modules | {
while read -r line
do
if [ ! -d ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")" ]; then
if [[ $line = \Y* ]]; then
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//Y /}
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
npm init -y
npm install request --save
git submodule update --init --recursive
else
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//N /}
git submodule update --init --recursive
fi
else
if [[ $line = \Y* ]]; then
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
echo "---Updating '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git pull
npm init -y
npm install request --save
git submodule update --init --recursive
else
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
echo "---Updating '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git pull
git submodule update --init --recursive
fi
fi
done; }
else
grep -v '^\s*$\|^#\|^\s*\#' < $modules | {
while read -r line
do
if [ ! -d ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")" ]; then
if [[ $line = \Y* ]]; then
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//Y /}
cd ${DATA_DIR}/modules/"$(echo "$(echo ${line##*/} | cut -d '.' -f1)")"
npm init -y
npm install request --save
git submodule update --init --recursive
else
cd ${DATA_DIR}/modules
echo "---Downloading '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")'---"
git clone ${line//N /}
git submodule update --init --recursive
fi
else
echo "Module '$(echo "$(echo ${line##*/} | cut -d '.' -f1)")' found!"
fi
done; }
fi
echo "---Preparing Server---"
if [ ! -f ${DATA_DIR}/config/config.js ]; then
echo "---No configuration file found, installing default---"
cp /tmp/config.js ${DATA_DIR}/config/config.js
else
echo "---Configuration file found!---"
fi
echo "---Please wait, permissions are set, this can take some time...---"
chmod -R ${DATA_PERM} ${DATA_DIR}
echo "---Starting Server---"
cd ${DATA_DIR}
npm run server