#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import utils
import json
import subprocess
import os

CONTENT = [
    "https://www.ubicast.eu/media/downloads/TradeshowDemoKit/medical_education.zip",
    "https://www.ubicast.eu/media/downloads/TradeshowDemoKit/rich-media-sneak-peek.zip"
]


def setup(interactive=True):
    if os.path.exists('/etc/nginx/sites-enabled/mediaserver-msuser.conf'):
        cmds = list()
        options = {
            "ms_url": utils.get_conf('MS_SERVER_NAME'),
            "ms_apikey": utils.get_conf('MS_API_KEY')
        }
        cmd_template = "./publish_zip_by_url.py -w https://{ms_url} -u %s -a {ms_apikey}".format(**options)
        # https://192.168.43.72/api/v2/search/?search=medical
        for c in CONTENT:
            cmd = cmd_template % c
            cmds.append(cmd)
        utils.run_commands(cmds)

    if os.path.exists('/etc/miris/netcapture.json'):
        cmds = list()
        with open('/etc/miris/netcapture.json', 'r') as f:
            c = json.load(f)
        c['mirismanager_check_ssl'] = False
        with open('/etc/miris/netcapture.json', 'w') as f:
            json.dump(c, f)

        cmds.extend([
            'rsync -r mirisconf/ /etc/miris/conf',
            'chgrp -R video /etc/miris/conf',
            'chmod -R 774 /etc/miris/conf',
        ])
        if subprocess.getstatusoutput("netcapturectl ls")[0] != 0:
            # start netcapture without hw accel
            cmds.append('netcapturectl add')
        utils.run_commands(cmds)

        # try to enable hw accel if available
        subprocess.getstatusoutput("apt install -y vainfo")
        if subprocess.getstatusoutput("vainfo")[0] == 0:
            cmds = list()
            # hw acceleration requires boot-time module options so a reboot will be needed
            c['enable_hw_acceleration'] = True
            if subprocess.getstatusoutput('dmesg | grep "GuC: Loaded"')[0] != 0:
                cmds.append('echo "options i915 enable_guc_loading=1 enable_guc_submission=1" > /etc/modprobe.d/netcapture.conf')
                cmds.append('update-initramfs -u')
                print('A reboot is required')
            with open('/etc/miris/netcapture.json', 'w') as f:
                json.dump(c, f)
            utils.run_commands(cmds)