#!/usr/bin/env python
import os
import sys
import subprocess

def notify(app, message):
    subprocess.Popen(["notify-send", "-i", "/usr/share/icons/Papirus/64x64/apps/software-store.svg", app, message])
    
def install(cmds, package, _type):
    app = "Web Installer"
    notify(app, f"Install {_type} {package}, this will take a while, you will be notified when its done")
    try:
        output = subprocess.check_output(cmds, stderr=subprocess.STDOUT)
        notify(app, f"{_type} {package}, installed successfully")
    except subprocess.CalledProcessError as err:
        return_code = err.returncode
        output = err.output
        notify(app, err.output)

def installer():
    handler = sys.argv[1]
    package = handler.replace("web-pamac://", "")
    if "?flatpak" in package:
        if os.path.exists("/usr/bin/flatpak"):
            flatpakPackage = package.replace("?flatpak", "")
            install(["pkexec", "flatpak", "-y", "install", flatpakPackage], flatpakPackage, "flatpak")
        
    elif "?snap" in package:
        if os.path.exists("/usr/bin/snap"):
            snapPackage = package.replace("?snap", "")
            install(["pkexec", "snap", "install", snapPackage], snapPackage, "snap")
        
    else:
        subprocess.Popen(["pamac-installer", package])
           

if __name__ == "__main__":
    installer()

