Skip to content

Commit

Permalink
Auto-update local copy of launcher in wrapper if found to be outdated
Browse files Browse the repository at this point in the history
  • Loading branch information
valentindavid committed Jul 21, 2017
1 parent a39b47c commit 5f678f5
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 7 deletions.
31 changes: 25 additions & 6 deletions albion-online.sh
@@ -1,13 +1,32 @@
#!/bin/sh

available_version="$(cat /app/extra/data/launcher/version.txt)"
home_version="$(cat "${HOME}/.albiononline/launcher/version.txt" 2>/dev/null)"
if [ "${home_version}" != "${available_version}" ]; then
set -e

if ! [ -f "${HOME}/.albiononline/launcher/version.txt" ]; then
mkdir -p "${HOME}/.albiononline"
rm -rf "${HOME}/.albiononline/launcher"
cp -r /app/extra/data/launcher "${HOME}/.albiononline/"
cp -r /app/extra/launcher "${HOME}/.albiononline/"
fi
cd "${HOME}/.albiononline/"

cd "${HOME}/.albiononline"

installed_version="$(cat launcher/version.txt 2>/dev/null | sed -n '/^launcher-linux-full-\(.*\)\r/{;s//\1/;p;q;}')"

IFS=';' read -a uriver <<<"$(get_albion_online_download_uri)"
version=${uriver[1]}
uri=${uriver[0]}

if [ "${version}" != "${installed_version}" ]; then
curl "${uri}" -o albion-online-setup --stderr - | zenity --progress --text="Downloading update" --pulsate --no-cancel --auto-close
/app/bin/splitelf albion-online-setup albion-online-setup.zip
rm -rf data
unzip albion-online-setup.zip 'data/launcher/*'
rm -rf launcher
mv data/launcher .
rm -rf data
rm albion-online-setup
rm albion-online-setup.zip
fi

export LD_PRELOAD="${HOME}/.albiononline/game_x64/Albion-Online_Data/Plugins/x86_64/libSDL2-2.0.so.0"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOME}/.albiononline/launcher"
exec "${HOME}/.albiononline/launcher/Albion-Online"
6 changes: 5 additions & 1 deletion apply_extra.sh
Expand Up @@ -4,7 +4,11 @@ set -e

/app/bin/splitelf albion-online-setup albion-online-setup.zip
unzip albion-online-setup.zip 'data/*'
mv data/* .
rm -rf data
rm albion-online-setup

mkdir -p export/share/icons/hicolor/128x128/apps
cp data/AlbionOnline.xpm export/share/icons/hicolor/128x128/apps/com.albiononline.AlbionOnline.xpm
cp AlbionOnline.xpm export/share/icons/hicolor/128x128/apps/com.albiononline.AlbionOnline.xpm
mkdir -p export/share/applications
cp /app/templates/com.albiononline.AlbionOnline.desktop export/share/applications/com.albiononline.AlbionOnline.desktop
6 changes: 6 additions & 0 deletions com.albiononline.AlbionOnline.json
Expand Up @@ -34,6 +34,7 @@
"install -D splitelf /app/bin/splitelf",
"install -D albion-online /app/bin/albion-online",
"install -D apply_extra /app/bin/apply_extra",
"install -D get_albion_online_download_uri /app/bin/get_albion_online_download_uri",
"install -Dm644 com.albiononline.AlbionOnline.appdata.xml /app/share/appdata/com.albiononline.AlbionOnline.appdata.xml",
"install -Dm644 com.albiononline.AlbionOnline.desktop /app/templates/com.albiononline.AlbionOnline.desktop",
"ln -s /lib/libdl.so.2 /app/lib/libdl.so"
Expand All @@ -53,6 +54,11 @@
"path": "apply_extra.sh",
"dest-filename": "apply_extra"
},
{
"type": "file",
"path": "get_download_uri.py",
"dest-filename": "get_albion_online_download_uri"
},
{
"type": "file",
"path": "com.albiononline.AlbionOnline.appdata.xml"
Expand Down
15 changes: 15 additions & 0 deletions get_download_uri.py
@@ -0,0 +1,15 @@
#!/usr/bin/python3

import xml.etree.ElementTree as ET
from urllib.request import urlopen
from urllib.parse import urljoin

base_uri = 'https://live.albiononline.com/autoupdate/'

manifest_uri = urljoin(base_uri, 'manifest.xml')
manifest = urlopen(manifest_uri)
doc = ET.parse(manifest)
fullinstall = doc.find('installer/linux/fullinstall')
name = fullinstall.attrib['file']
version = fullinstall.attrib['version']
print("{};{}".format(urljoin(base_uri, name), version))

0 comments on commit 5f678f5

Please sign in to comment.