Files
tv/runembysim.sh

134 lines
3.7 KiB
Bash

#!/bin/bash
prog="$0"
while [ -h "${prog}" ]; do
newProg=`/bin/ls -ld "${prog}"`
newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
if expr "x${newProg}" : 'x/' >/dev/null; then
prog="${newProg}"
else
progdir=`dirname "${prog}"`
prog="${progdir}/${newProg}"
fi
done
progdir=`dirname "${prog}"`
cd "${progdir}"
progdir=$(pwd)
# 获取当前脚本的名称
SCRIPT_NAME=$(basename "$0")
# 检查是否有相同的脚本在运行(排除当前进程)
if pgrep -f "$SCRIPT_NAME" | grep -v "$$" > /dev/null; then
echo "脚本已在运行,退出..."
exit 1
fi
mkdir -p emby.tmp emby.cache >/dev/null 2>&1
chmod 777 emby.tmp emby.cache
#docker stop embysim
#docker rm embysim
num=$(mount |grep "/external"|wc -l)
if [ $num -lt 1 ]; then
mkdir external >/dev/null 2>&1
mount -o bind,shared emby.external external
echo "mount emby.external to external to mark shared"
fi
if [ ! -e alistservers.txt ]; then
cp alistservers.template.txt alistservers.txt
fi
interface=$(ip route show | grep default | awk '{print $5}')
export SELFIP=$(ip addr show $interface | grep -w inet | awk '{print $2}' | cut -d/ -f1|head -1)
echo "DETECT SELF IP:${SELFIP}, if this is not correct, change SELFIP to your real ip"
url=$(cat rclone.conf |grep -E "^url"|sed -e 's/.*\(http.*\)/\1/'|head -1)
echo "get webdav url from rclone:$url"
curl -v -L $url
if [ $? -eq 0 ]; then
iswebdavsim=$(curl -v -L $url -o - 2>&1|grep "Path-Based WebDAV Server"|wc -l)
if [ $iswebdavsim -gt 0 ]; then
echo "WARN:webdavsim is running, data may be outdate."
else
echo "ERROR:$url is NOT WebDAVSim, exit"
exit
fi
else
echo "run webdavsim..."
chmod u+x tmuxrunwebdavsim.sh
tmux -V
if [ $? -eq 0 ]; then
./tmuxrunwebdavsim.sh
else
nohup ./runwebdavsim.sh >/dev/null 2>&1 &
fi
fi
num=$(mount |grep "/rclone.media"|wc -l)
if [ $num -gt 0 ]; then
echo "WARN:rclone.media already mounted, the webdav content may be outdate"
else
chmod u+x rclonemount.sh
./rclonemount.sh
fi
num=$(mount |grep "/rclone.media"|wc -l)
if [ $num -lt 1 ]; then
echo "ERROR:rclone not running, exit"
exit
fi
# --gpus all \
# -e HTTP_PROXY=http://192.168.101.1:8118 \
# -e HTTPS_PROXY=http://192.168.101.1:8118 \
# --net=host \
cores=$(cat /proc/cpuinfo |grep processor|wc -l)
cpus=$(expr $cores / 2)
if [ $cpus -lt 1 ]; then
cpus="1"
fi
#echo "use cpus:$cpus"
# --cpus $cpus \
docker-compose -v
if [ $? -eq 0 ]; then
sed -i -e "s|let serverAddr =.*|let serverAddr = 'http://${SELFIP}:8097';|g" nginx/conf.d/externalUrl.js
sed -i -e "s|- .*emby.config:/config|- ${progdir}/emby.config:/config|g" docker-compose.yml
sed -i -e "s|- .*external:/external|- ${progdir}/external:/external|g" docker-compose.yml
sed -i -e "s|- .*emby.tmp:/tmp|- ${progdir}/emby.tmp:/tmp|g" docker-compose.yml
sed -i -e "s|- .*emby.cache:/cache|- ${progdir}/emby.cache:/cache|g" docker-compose.yml
docker stop embysim
docker-compose down
docker-compose up -d
else
docker stop embysim
docker rm embysim
docker run -d \
--sysctl net.ipv6.conf.all.disable_ipv6=1 \
--name embysim \
-v $progdir/emby.config:/config \
-v $progdir/external:/external:rshared \
-v $progdir/emby.tmp:/tmp \
-v $progdir/emby.cache:/cache \
--device /dev/dri:/dev/dri \
-p 8096:8096 \
-p 8920:8920 \
--env UID=1000 \
--env GID=100 \
--env GIDLIST=100 \
--env SELFIP=${SELFIP} \
--restart on-failure \
emby/embyserver:latest
#pandagroove/embysim:1.0.0
fi
sleep 1
docker cp "externalPlayer.js" "embysim":"/system/dashboard-ui/externalPlayer.js"
docker exec "embysim" sh -c "chmod 777 /system/dashboard-ui/externalPlayer.js;sed -i -e 's|<script src=\"externalPlayer.js\" defer></script></body>|</body>|g' \"/system/dashboard-ui/index.html\";sed -i 's|</body>|<script src=\"externalPlayer.js\" defer></script></body>|g' \"/system/dashboard-ui/index.html\""