From 7d0f5b625998aba0888bf6dd81d9eb83f5ca2134 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 21:58:01 -0500 Subject: Organize supplementary files better --- debian/bin/jellyfin-sudoers | 37 +++++++++++++++++++++++++++++++++++++ debian/bin/restart.sh | 18 ++++++++++++++++++ debian/conf/jellyfin | 37 +++++++++++++++++++++++++++++++++++++ debian/conf/jellyfin.conf | 24 ++++++++++++++++++++++++ debian/install | 7 ++++--- debian/jellyfin-sudoers | 37 ------------------------------------- debian/jellyfin.conf | 24 ------------------------ debian/jellyfin.default | 37 ------------------------------------- debian/restart.sh | 18 ------------------ 9 files changed, 120 insertions(+), 119 deletions(-) create mode 100644 debian/bin/jellyfin-sudoers create mode 100644 debian/bin/restart.sh create mode 100644 debian/conf/jellyfin create mode 100644 debian/conf/jellyfin.conf delete mode 100644 debian/jellyfin-sudoers delete mode 100644 debian/jellyfin.conf delete mode 100644 debian/jellyfin.default delete mode 100644 debian/restart.sh (limited to 'debian') diff --git a/debian/bin/jellyfin-sudoers b/debian/bin/jellyfin-sudoers new file mode 100644 index 000000000..4eb91366b --- /dev/null +++ b/debian/bin/jellyfin-sudoers @@ -0,0 +1,37 @@ +#Allow jellyfin group to start, stop and restart itself +Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart +Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start +Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop +Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart jellyfin, /bin/systemctl restart jellyfin +Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start jellyfin, /bin/systemctl start jellyfin +Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop jellyfin, /bin/systemctl stop jellyfin +Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart +Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start +Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop + + +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD + +Defaults!RESTARTSERVER_SYSV !requiretty +Defaults!STARTSERVER_SYSV !requiretty +Defaults!STOPSERVER_SYSV !requiretty +Defaults!RESTARTSERVER_SYSTEMD !requiretty +Defaults!STARTSERVER_SYSTEMD !requiretty +Defaults!STOPSERVER_SYSTEMD !requiretty +Defaults!RESTARTSERVER_INITD !requiretty +Defaults!STARTSERVER_INITD !requiretty +Defaults!STOPSERVER_INITD !requiretty + +#Allow the server to mount iso images +%jellyfin ALL=(ALL) NOPASSWD: /bin/mount +%jellyfin ALL=(ALL) NOPASSWD: /bin/umount + +Defaults:%jellyfin !requiretty diff --git a/debian/bin/restart.sh b/debian/bin/restart.sh new file mode 100644 index 000000000..a6f4632ba --- /dev/null +++ b/debian/bin/restart.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +NAME=jellyfin + +restart_cmds=("s6-svc -t /var/run/s6/services/${NAME}" \ + "systemctl restart ${NAME}" \ + "service ${NAME} restart" \ + "/etc/init.d/${NAME} restart") + +for restart_cmd in "${restart_cmds[@]}"; do + cmd=$(echo "$restart_cmd" | awk '{print $1}') + cmd_loc=$(command -v ${cmd}) + if [[ -n "$cmd_loc" ]]; then + restart_cmd=$(echo "$restart_cmd" | sed -e "s%${cmd}%${cmd_loc}%") + echo "sleep 2; sudo $restart_cmd > /dev/null 2>&1" | at now > /dev/null 2>&1 + exit 0 + fi +done diff --git a/debian/conf/jellyfin b/debian/conf/jellyfin new file mode 100644 index 000000000..57f424c06 --- /dev/null +++ b/debian/conf/jellyfin @@ -0,0 +1,37 @@ +# Defaults for jellyfin initscript +# sourced by /etc/init.d/jellyfin and /usr/lib/jellyfin/jellyfin.sh +# installed at /etc/default/jellyfin by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +## Don't edit this file +## Edit user configuration in /etc/jellyfin.conf to change +## +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin +## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid +## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart +## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen +## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary +## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary +## +## EXAMPLE if want to run as different user +## add JELLYFIN_USER=username to /etc/jellyfin.conf +## otherwise default jellyfin is used + +JELLYFIN_USER="jellyfin" +JELLYFIN_GROUP="jellyfin" +JELLYFIN_DIR="/usr/lib/jellyfin" +JELLYFIN_BIN="/usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe" +JELLYFIN_DATA="/var/lib/jellyfin" +JELLYFIN_PIDFILE="/var/run/jellyfin.pid" +JELLYFIN_ADD_OPTS="" +MONO_BIN="/usr/bin/mono-sgen" +MONO_OPTS="--optimize=all" +MONO_ENV="MONO_THREADS_PER_CPU=250 MONO_GC_PARAMS=nursery-size=128m" +UMASK="002" diff --git a/debian/conf/jellyfin.conf b/debian/conf/jellyfin.conf new file mode 100644 index 000000000..ef5c424e8 --- /dev/null +++ b/debian/conf/jellyfin.conf @@ -0,0 +1,24 @@ +# Override defaults for jellyfin initscript +# sourced by /etc/init.d/jellyfin and /usr/bin/jellyfin +# installed at /etc/jellyfin.conf by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +## To change the defaults add any of the following settings below the comments +## +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin +## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid +## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart +## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen +## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary +## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary +## +## EXAMPLE if want to run as different user +## add JELLYFIN_USER=username +## otherwise default jellyfin is used diff --git a/debian/install b/debian/install index ad5c51155..a45091a3c 100644 --- a/debian/install +++ b/debian/install @@ -1,4 +1,5 @@ usr/lib/jellyfin usr/lib/ -debian/jellyfin.conf etc/ -debian/jellyfin-sudoers etc/sudoers.d/ -debian/restart.sh usr/lib/jellyfin +debian/conf/jellyfin.conf etc/ +debian/conf/jellyfin etc/default/ +debian/bin/jellyfin-sudoers etc/sudoers.d/ +debian/bin/restart.sh usr/lib/jellyfin/ diff --git a/debian/jellyfin-sudoers b/debian/jellyfin-sudoers deleted file mode 100644 index 4eb91366b..000000000 --- a/debian/jellyfin-sudoers +++ /dev/null @@ -1,37 +0,0 @@ -#Allow jellyfin group to start, stop and restart itself -Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart -Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start -Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop -Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart jellyfin, /bin/systemctl restart jellyfin -Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start jellyfin, /bin/systemctl start jellyfin -Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop jellyfin, /bin/systemctl stop jellyfin -Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart -Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start -Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop - - -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD - -Defaults!RESTARTSERVER_SYSV !requiretty -Defaults!STARTSERVER_SYSV !requiretty -Defaults!STOPSERVER_SYSV !requiretty -Defaults!RESTARTSERVER_SYSTEMD !requiretty -Defaults!STARTSERVER_SYSTEMD !requiretty -Defaults!STOPSERVER_SYSTEMD !requiretty -Defaults!RESTARTSERVER_INITD !requiretty -Defaults!STARTSERVER_INITD !requiretty -Defaults!STOPSERVER_INITD !requiretty - -#Allow the server to mount iso images -%jellyfin ALL=(ALL) NOPASSWD: /bin/mount -%jellyfin ALL=(ALL) NOPASSWD: /bin/umount - -Defaults:%jellyfin !requiretty diff --git a/debian/jellyfin.conf b/debian/jellyfin.conf deleted file mode 100644 index ef5c424e8..000000000 --- a/debian/jellyfin.conf +++ /dev/null @@ -1,24 +0,0 @@ -# Override defaults for jellyfin initscript -# sourced by /etc/init.d/jellyfin and /usr/bin/jellyfin -# installed at /etc/jellyfin.conf by the maintainer scripts - -# -# This is a POSIX shell fragment -# - -## To change the defaults add any of the following settings below the comments -## -## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin -## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs -## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin -## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe -## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin -## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid -## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart -## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen -## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary -## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary -## -## EXAMPLE if want to run as different user -## add JELLYFIN_USER=username -## otherwise default jellyfin is used diff --git a/debian/jellyfin.default b/debian/jellyfin.default deleted file mode 100644 index 57f424c06..000000000 --- a/debian/jellyfin.default +++ /dev/null @@ -1,37 +0,0 @@ -# Defaults for jellyfin initscript -# sourced by /etc/init.d/jellyfin and /usr/lib/jellyfin/jellyfin.sh -# installed at /etc/default/jellyfin by the maintainer scripts - -# -# This is a POSIX shell fragment -# - -## Don't edit this file -## Edit user configuration in /etc/jellyfin.conf to change -## -## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin -## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs -## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin -## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe -## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin -## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid -## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart -## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen -## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary -## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary -## -## EXAMPLE if want to run as different user -## add JELLYFIN_USER=username to /etc/jellyfin.conf -## otherwise default jellyfin is used - -JELLYFIN_USER="jellyfin" -JELLYFIN_GROUP="jellyfin" -JELLYFIN_DIR="/usr/lib/jellyfin" -JELLYFIN_BIN="/usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe" -JELLYFIN_DATA="/var/lib/jellyfin" -JELLYFIN_PIDFILE="/var/run/jellyfin.pid" -JELLYFIN_ADD_OPTS="" -MONO_BIN="/usr/bin/mono-sgen" -MONO_OPTS="--optimize=all" -MONO_ENV="MONO_THREADS_PER_CPU=250 MONO_GC_PARAMS=nursery-size=128m" -UMASK="002" diff --git a/debian/restart.sh b/debian/restart.sh deleted file mode 100644 index a6f4632ba..000000000 --- a/debian/restart.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -NAME=jellyfin - -restart_cmds=("s6-svc -t /var/run/s6/services/${NAME}" \ - "systemctl restart ${NAME}" \ - "service ${NAME} restart" \ - "/etc/init.d/${NAME} restart") - -for restart_cmd in "${restart_cmds[@]}"; do - cmd=$(echo "$restart_cmd" | awk '{print $1}') - cmd_loc=$(command -v ${cmd}) - if [[ -n "$cmd_loc" ]]; then - restart_cmd=$(echo "$restart_cmd" | sed -e "s%${cmd}%${cmd_loc}%") - echo "sleep 2; sudo $restart_cmd > /dev/null 2>&1" | at now > /dev/null 2>&1 - exit 0 - fi -done -- cgit v1.2.3