print("Initalizing asus-linux.org archinstall plugin")
print("this plugin will automatic select linux-g14 kernel and add asusctl and supergfxctl packages")

import archinstall
import pathlib
import subprocess

__version__ = 0.1

class Plugin():
    def on_pacstrap(self, packages :list) -> list:
        if len(packages) > 0 and packages[0] == "base":
            packages.append("asusctl")
            packages.append("supergfxctl")
            packages.append("linux-g14-headers")
  
        return packages

pacman_repo_g14 = """

[g14]
SigLevel = Never
Server = https://arch.asus-linux.org

"""

dgpu_disable_disable = """

echo 0 | sudo tee /sys/devices/platform/asus-nb-wmi/dgpu_disable
echo 1 > /sys/bus/pci/rescan
echo 0 | sudo tee /sys/devices/platform/asus-nb-wmi/dgpu_disable

"""

gpus_texts = subprocess.check_output('lspci | grep -E "VGA compatible controller:|Display controller:"', shell=True, text=True).splitlines()

if len(gpus_texts) == 1:
    if pathlib.Path("/sys/devices/platform/asus-nb-wmi/dgpu_disable").is_file():
        print("no dGPU found, trying to disable dgpu_disable now")
        subprocess.check_output(dgpu_disable_disable, shell=True, text=True)
    else:
        print("no dGPU, and no dgpu_disable found! this is probaly an error")
        
     
     


if not pathlib.Path('/tmp/g14_init_done').is_file():

    with open("/etc/pacman.conf", "a") as f:
        f.write(pacman_repo_g14)
        
    pathlib.Path('/tmp/g14_init_done').touch()

archinstall.arguments["kernels"] = ["linux-g14"]


input("press Enter to continue...")