Jump to content

Python Debian/Ubuntu Update Script


Recommended Posts

Posted

Since there's no repository for Emby anymore <_< I finally got around to writing my own script to download the latest. I just run this on a nightly cron. Maybe this can help someone else! It could easily be modified for Redhat/Centos and maybe others. 

from bs4 import BeautifulSoup
from urllib import request
import json
import subprocess
import sys

def log_error(e):
    """
    Maybe do real logging here
    """
    print(e)

def cmp_version(local, remote):
    """Compare two version strings for sorting"""

    local = local.split('.')
    remote = remote.split('.')

    for i,_ in enumerate(local):
        octet1 = int(local[i])
        octet2 = int(remote[i])
        if octet1 < octet2:
            return 1
        elif octet1 > octet2:
            return -1
        else:
            continue
    return 0

# Get version of emby on system
emby_version = subprocess.getoutput('dpkg-query -s emby-server | grep Version | awk -F":" \'{print $2}\'').strip()

if not emby_version:
    log_error("couldn't get version of emby")
    sys.exit()

# Get latest release json
with request.urlopen('https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest') as url:
    data = json.loads(url.read().decode())
    if not data:
        log_error("couldn't get valid json response from github")
    for asset in data['assets']:
        release_name = asset['name']
        if release_name.startswith('emby-server-deb_'):
            if release_name.endswith('_amd64.deb'):
                release_name = release_name.replace('emby-server-deb_', '')
                version = release_name.replace('_amd64.deb', '')
                if cmp_version(emby_version, version):
                    # Download new version!
                    request.urlretrieve(asset['browser_download_url'], '/tmp/emby.deb')
                    subprocess.getoutput('dpkg -i /tmp/emby.deb')

Script will be maintained by me here: https://gist.github.com/dadatuputi/883613b2550601076b5e3b1012c505fd

Posted

Hi, that's great info, thanks !

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...