1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/jellyfin_ynh.git synced 2024-09-03 19:26:29 +02:00

Refactor : deduplicate code for installing .deb packages

This commit is contained in:
Salamandar 2022-02-20 10:35:02 +01:00 committed by Salamandar
parent 4d013faeb4
commit fca163a3be
4 changed files with 38 additions and 69 deletions

View file

@ -60,6 +60,41 @@ pkg_dependencies="${ffmpeg_deps[*]} ${jellyfin_deps[*]}"
# PERSONAL HELPERS
#=================================================
install_jellyfin_packages() {
# In case of a new version, the url change from
# https://repo.jellyfin.org/releases/server/debian/versions/stable/server/X.X.X/jellyfin-server_X.X.X-1_$architecture.deb to
# https://repo.jellyfin.org/archive/debian/stable/X.X.X/server/jellyfin-server_X.X.X-1_$architecture.deb
src_url=$(grep 'SOURCE_URL=' "../conf/server.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string \
--match_string="releases/server/debian/versions/stable/server/$version/" \
--replace_string="archive/debian/stable/$version/server/" \
--target_file="../conf/server.$debian.$architecture.src"
fi
# Same for web
src_url=$(grep 'SOURCE_URL=' "../conf/web.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string \
--match_string="releases/server/debian/versions/stable/web/$version/" \
--replace_string="archive/debian/stable/$version/web/" \
--target_file="../conf/web.$debian.$architecture.src"
fi
# Create the temporary directory
tempdir="$(mktemp -d)"
# Download the deb files
ynh_setup_source --dest_dir=$tempdir --source_id="ffmpeg.$debian.$architecture"
ynh_setup_source --dest_dir=$tempdir --source_id="server.$debian.$architecture"
ynh_setup_source --dest_dir=$tempdir --source_id="web.$debian.$architecture"
# Install the packages
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-ffmpeg.deb
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-server.deb
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-web.deb
}
#=================================================
# EXPERIMENTAL HELPERS
#=================================================

View file

@ -110,29 +110,7 @@ ynh_install_app_dependencies $pkg_dependencies
#=================================================
ynh_script_progression --message="Installing packages..." --weight=1
# Create the temporary directory
tempdir="$(mktemp -d)"
# Download the deb files
ynh_setup_source --dest_dir=$tempdir --source_id="ffmpeg.$debian.$architecture"
# In case of a new version, the url change from https://repo.jellyfin.org/releases/server/debian/versions/stable/server/X.X.X/jellyfin-server_X.X.X-1_$architecture.deb to https://repo.jellyfin.org/archive/debian/stable/X.X.X/server/jellyfin-server_X.X.X-1_$architecture.deb
src_url=$(grep 'SOURCE_URL=' "../conf/server.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/server/$version/jellyfin-server_$version-1_$architecture.deb" --replace_string="archive/debian/stable/$version/server/jellyfin-server_$version-1_$architecture.deb" --target_file="../conf/server.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="server.$debian.$architecture"
# Same for web
src_url=$(grep 'SOURCE_URL=' "../conf/web.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/web/$version/jellyfin-web_$version-1_all.deb" --replace_string="archive/debian/stable/$version/web/jellyfin-web_$version-1_all.deb" --target_file="../conf/web.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="web.$debian.$architecture"
# Install the packages
ynh_exec_warn_less dpkg -i $tempdir/jellyfin-ffmpeg.deb
ynh_exec_warn_less dpkg -i $tempdir/jellyfin-server.deb
ynh_exec_warn_less dpkg -i $tempdir/jellyfin-web.deb
install_jellyfin_packages
#=================================================
# NGINX CONFIGURATION

View file

@ -119,29 +119,7 @@ ynh_install_app_dependencies $pkg_dependencies
#=================================================
ynh_script_progression --message="Reinstalling packages..." --weight=7
# Create the temporary directory
tempdir="$(mktemp -d)"
# Download the deb files
ynh_setup_source --dest_dir=$tempdir --source_id="ffmpeg.$debian.$architecture"
# In case of a new version, the url change from https://repo.jellyfin.org/releases/server/debian/versions/stable/server/X.X.X/jellyfin-server_X.X.X-1_$architecture.deb to https://repo.jellyfin.org/archive/debian/stable/X.X.X/server/jellyfin-server_X.X.X-1_$architecture.deb
src_url=$(grep 'SOURCE_URL=' "../settings/conf/server.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/server/$version/jellyfin-server_$version-1_$architecture.deb" --replace_string="archive/debian/stable/$version/server/jellyfin-server_$version-1_$architecture.deb" --target_file="../settings/conf/server.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="server.$debian.$architecture"
# Same for web
src_url=$(grep 'SOURCE_URL=' "../settings/conf/web.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/web/$version/jellyfin-web_$version-1_all.deb" --replace_string="archive/debian/stable/$version/web/jellyfin-web_$version-1_all.deb" --target_file="../settings/conf/web.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="web.$debian.$architecture"
# Install the packages
ynh_exec_warn_less dpkg --force-confdef --force-confold -i $tempdir/jellyfin-ffmpeg.deb
ynh_exec_warn_less dpkg --force-confdef --force-confold -i $tempdir/jellyfin-server.deb
ynh_exec_warn_less dpkg --force-confdef --force-confold -i $tempdir/jellyfin-web.deb
install_jellyfin_packages
#=================================================
# RESTORE SYSTEMD

View file

@ -151,29 +151,7 @@ ynh_install_app_dependencies $pkg_dependencies
#=================================================
ynh_script_progression --message="Upgrading packages..." --weight=3
# Create the temporary directory
tempdir="$(mktemp -d)"
# Download the deb files
ynh_setup_source --dest_dir=$tempdir --source_id="ffmpeg.$debian.$architecture"
# In case of a new version, the url change from https://repo.jellyfin.org/releases/server/debian/versions/stable/server/X.X.X/jellyfin-server_X.X.X-1_$architecture.deb to https://repo.jellyfin.org/archive/debian/stable/X.X.X/server/jellyfin-server_X.X.X-1_$architecture.deb
src_url=$(grep 'SOURCE_URL=' "../conf/server.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/server/$version/jellyfin-server_$version-1_$architecture.deb" --replace_string="archive/debian/stable/$version/server/jellyfin-server_$version-1_$architecture.deb" --target_file="../conf/server.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="server.$debian.$architecture"
# Same for web
src_url=$(grep 'SOURCE_URL=' "../conf/web.$debian.$architecture.src" | cut -d= -f2-)
if ! curl --output /dev/null --silent --head --fail "$src_url"; then
ynh_replace_string --match_string="releases/server/debian/versions/stable/web/$version/jellyfin-web_$version-1_all.deb" --replace_string="archive/debian/stable/$version/web/jellyfin-web_$version-1_all.deb" --target_file="../conf/web.$debian.$architecture.src"
fi
ynh_setup_source --dest_dir=$tempdir --source_id="web.$debian.$architecture"
# Install the packages
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-ffmpeg.deb
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-server.deb
ynh_exec_warn_less dpkg --force-confdef --force-confnew -i $tempdir/jellyfin-web.deb
install_jellyfin_packages
#=================================================
# CREATE DEDICATED USER