# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = "LibreCAD"
silentflags = "/S"
app_uninstallkey = "LibreCAD (x64)"

def install():
    # Uninstalling other version of LibreCAD
    for to_uninstall in installed_softwares("LibreCAD"):
        print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
        killalltasks(ensure_list(control.impacted_process))
        run(uninstall_cmd(to_uninstall["key"]))
        wait_uninstallkey_absent(to_uninstall["key"])

    # Declaring local variables
    bin_name = glob.glob("*%s*.exe" % bin_contains)[0]

    # Installing the software
    print("Installing: %s" % bin_name)
    install_exe_if_needed(
        bin_name,
        silentflags=silentflags,
        key=app_uninstallkey,
        min_version = control.get_software_version()
    )
    remove_desktop_shortcut(bin_contains)
    create_programs_menu_shortcut(bin_contains, makepath(programfiles, "LibreCAD", "LibreCAD.exe"))

def uninstall():
    remove_programs_menu_shortcut(bin_contains)