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:
parent
4d013faeb4
commit
fca163a3be
4 changed files with 38 additions and 69 deletions
|
@ -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
|
||||
#=================================================
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue