#!/usr/bin/python3
import os, sys, hashlib, time

rBaseDir = os.path.dirname(os.path.realpath(__file__)) + "/"
rPHPDir = rBaseDir + "bin/php/bin/php"
rCLIDir = rBaseDir + "includes/cli/"


def md5(rFilename):
    rMD5 = hashlib.md5()
    with open(rFilename, "rb") as rFile:
        for rChunk in iter(lambda: rFile.read(4096), b""):
            rMD5.update(rChunk)
    return rMD5.hexdigest()


def doUpdate(rFilename):
    os.system("sudo systemctl stop streamera")
    os.system('sudo tar -zxvf "%s" -C "%s"' % (rFilename, rBaseDir))
    os.system('sudo chown -R streamera:streamera "%s"' % rBaseDir)
    os.system('sudo %s %supdate.php "post-update"' % (rPHPDir, rCLIDir))
    os.system("sudo systemctl start streamera")
    os.remove(rFilename)
    return True


if __name__ == "__main__":
    try:
        rFilename = sys.argv[1]
        rMD5 = sys.argv[2]
    except:
        print("Please run the update from the streamera Admin Interface.")
        sys.exit(1)
    if md5(rFilename) == rMD5:
        doUpdate(rFilename)
    else:
        print("CRC ERROR")
    sys.exit(1)
