Update 'root/usr/libexec/apps/emby.sh'

main
ben 1 year ago
parent 59f58fef53
commit c83fee6b76

@ -1,105 +1,90 @@
#!/bin/sh #!/bin/sh
ACTION=${1} ACTION=${1}
shift 1 shift 1
do_install() { get_image() {
local hostnet=`uci get emby.@main[0].hostnet 2>/dev/null` IMAGE_NAME=$(uci get emby.@main[0].image_name 2>/dev/null)
local http_port=`uci get emby.@main[0].http_port 2>/dev/null` [ -z "$IMAGE_NAME" ] && IMAGE_NAME="lscr.io/linuxserver/emby:latest"
local image_name=`uci get emby.@main[0].image_name 2>/dev/null` }
local config=`uci get emby.@main[0].config_path 2>/dev/null`
local media=`uci get emby.@main[0].media_path 2>/dev/null`
local cache=`uci get emby.@main[0].cache_path 2>/dev/null`
[ -z "$image_name" ] && image_name="emby/embyserver"
echo "docker pull ${image_name}"
docker pull ${image_name}
docker rm -f emby
if [ -z "$config" ]; then
echo "config path is empty!"
exit 1
fi
# not conflict with jellyfin
[ -z "$http_port" ] && http_port=8097
local cmd="docker run --restart=unless-stopped -d -v \"$config:/config\" " do_install_detail() {
local config=$(uci get emby.@main[0].config_path 2>/dev/null)
local port=$(uci get emby.@main[0].http_port 2>/dev/null)
local tvshows=$(uci get emby.@main[0].tvshows_path 2>/dev/null)
local movies=$(uci get emby.@main[0].movies_path 2>/dev/null)
if [ -d /dev/dri ]; then LAN_IP=$(uci get network.lan.ipaddr)
cmd="$cmd\ LAN_IP="${LAN_IP%/*}"
--device /dev/dri:/dev/dri \
--privileged "
fi
if [ "$hostnet" = 1 ]; then if [ -z "$config" ] || [ -z "$tvshows" ] || [ -z "$movies" ]; then
cmd="$cmd\ echo "Paths for config, tvshows, or movies are empty!"
--dns=127.0.0.1 \ exit 1
--network=host "
else
cmd="$cmd\
--dns=172.17.0.1 \
-p $http_port:8096 "
fi fi
local tz="`uci get system.@system[0].zonename`" [ -z "$port" ] && port=8096
[ -z "$tz" ] || cmd="$cmd -e TZ=$tz"
rm -R /opt/docker2/compose/emby-app
mkdir /opt/docker2/compose/emby-app
touch /opt/docker2/compose/emby-app/docker-compose.yml
cat > /opt/docker2/compose/emby-app/docker-compose.yml <<EOF
version: "2.1"
services:
emby:
image: $IMAGE_NAME
container_name: emby
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config
- $config:/data/tvshows
- $config:/data/movies
ports:
- $port:8096
restart: unless-stopped
EOF
docker-compose -f /opt/docker2/compose/emby-app/docker-compose.yml up -d
[ -z "$cache" ] || cmd="$cmd -v \"$cache:/config/cache\""
[ -z "$media" ] || cmd="$cmd -v \"$media:/data\""
cmd="$cmd -v /mnt:/mnt"
mountpoint -q /mnt && cmd="$cmd:rslave"
cmd="$cmd --name emby \"$image_name\""
echo "$cmd"
eval "$cmd"
#Add link to shortcutmenu
# Get our local LAN IP Address
LAN_IP=$(uci get network.lan.ipaddr)
# Strip trailing network mask
LAN_IP="${LAN_IP%/*}"
# Add a new list option to the "shortcutmenu" configuration file
uci add shortcutmenu lists uci add shortcutmenu lists
uci set shortcutmenu.@lists[-1].webname="$image_name" uci set shortcutmenu.@lists[-1].webname="Emby"
uci set shortcutmenu.@lists[-1].weburl="$LAN_IP:$http_port" uci set shortcutmenu.@lists[-1].weburl="$LAN_IP:$port"
uci set shortcutmenu.@lists[-1].webpath="/" uci set shortcutmenu.@lists[-1].webpath="/"
uci commit shortcutmenu uci commit shortcutmenu
} }
usage() { usage() {
echo "usage: $0 sub-command" echo "usage: $0 sub-command"
echo "where sub-command is one of:" echo "where sub-command is one of:"
echo " install Install the emby" echo " install Install Emby"
echo " upgrade Upgrade the emby" echo " upgrade Upgrade Emby"
echo " rm/start/stop/restart Remove/Start/Stop/Restart the emby" echo " rm/start/stop/restart Remove/Start/Stop/Restart Emby"
echo " status Emby status" echo " status Emby status"
echo " port Emby port" echo " port Emby port"
} }
case ${ACTION} in case ${ACTION} in
"install") "install"|"upgrade")
do_install get_image
;; do_install_detail
"upgrade")
do_install
;; ;;
"rm") "rm")
docker rm -f emby get_image
docker-compose -f /opt/docker2/compose/emby-app/docker-compose.yml down
;; ;;
"start" | "stop" | "restart") "start"|"stop"|"restart")
docker ${ACTION} emby docker-compose -f /opt/docker2/compose/emby-app/docker-compose.yml ${ACTION}
;; ;;
"status") "status")
docker ps --all -f 'name=emby' --format '{{.State}}' get_image
docker ps -a --filter "ancestor=${IMAGE_NAME}" --format '{{.Status}}'
;; ;;
"port") "port")
docker ps --all -f 'name=emby' --format '{{.Ports}}' | grep -om1 '0.0.0.0:[0-9]*' | sed 's/0.0.0.0://' get_image
docker ps -a --filter "ancestor=${IMAGE_NAME}" --format '{{.Ports}}' | grep -om1 '0.0.0.0:[0-9]*' | sed 's/0.0.0.0://'
;; ;;
*) *)
usage usage

Loading…
Cancel
Save