#!/usr/bin/env python3
import os
import updatekiller

if __name__ == "__main__":
    print('''                                   
   mmm  ""#                        
 m"   "   #     mmm    mmm   m mm  
 #        #    #"  #  "   #  #"  # 
 #        #    #""""  m"""#  #   # 
  "mmm"   "mm  "#mm"  "mm"#  #   # 
                                   
                                   
''')
    programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
    print("此程序可以帮助您删除程序无需的组件以节约空间")
    print("如果全部删除,将只会有核心功能")
    print("如果删除后想要恢复这样组件需要重新安装该软件包")
    delProgramList = []
    delProramCommand = "#!/bin/bash\n"
    for i in [
        [
            "含有商业软件的内容",
            [
                f"{programPath}/StartVM.sh",
	            f"{programPath}/RunVM.sh",
	            f"{programPath}/VM",
	            "/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop",
	            "/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop",
                f"{programPath}/BeCyIconGrabber.exe",
                f"{programPath}/geek.exe",
                f"{programPath}/窗体透明度设置工具.exe",
                f"{programPath}/UpdateGeek.sh",
                f"{programPath}/AppStore.py",
                f"{programPath}/InstallFont.py",
                f"{programPath}/InstallMsxml.py",
                f"{programPath}/InstallNetFramework.py",
                f"{programPath}/InstallOther.py",
                f"{programPath}/InstallVisualCPlusPlus.py"
            ]
        ],
        [
            "Wine 打包器(不基于生态打包脚本)", 
            [
                f"{programPath}/deepin-wine-packager.py",
                f"{programPath}/exagear",
                f"{programPath}/exagear.7z",
                f"{programPath}/exagear",
                f"{programPath}/wined3d.dll.so.7z",
                f"{programPath}/wined3d.dll.so",
                "/usr/bin/deepin-wine-package-builder",
                "/usr/share/applications/spark-deepin-wine-package-builder.desktop"
            ]
        ],
        [
            "Wine 打包器(基于生态打包脚本)", 
            [
                f"{programPath}/deepin-wine-packager-with-script.py",
                f"{programPath}/package-script.zip",
                f"{programPath}/package-script",
                "/usr/bin/deepin-wine-packager-with-script",
                "/usr/share/applications/spark-deepin-wine-packager-with-script.desktop"
            ]
        ],
        [
            "Arm 64 box86 wine 运行 DLL",
            [
                f"{programPath}/dlls-arm.7z",
                f"{programPath}/dlls-arm",
                f"{programPath}/wined3d.dll.so.7z",
                f"{programPath}/wined3d.dll.so"
            ]
        ],
        [
            "Windows 虚拟机简易安装组件",
            [
                f"{programPath}/StartVM.sh",
	            f"{programPath}/RunVM.sh",
	            f"{programPath}/VM",
	            "/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop",
	            "/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop"
            ]
        ],
        [
            "Wine 安装组件",
            [
                f"{programPath}/AllInstall.py",
                f"{programPath}/wine install",
                f"{programPath}/InstallWineOnDeepin23.py",
                f"{programPath}/sparkstore.list",
                f"{programPath}/InstallNewWineHQ.sh",
                f"{programPath}/wine",
                "/usr/bin/deepin-wine-runner-wine-installer",
                "/usr/bin/deepin-wine-runner-wine-install-deepin23",
                "/usr/bin/deepin-wine-runner-wine-install",
                "/usr/bin/deepin-wine-runner-winehq-install"
            ]
        ]
    ]:
        if not os.path.exists(i[1][0]):
            continue
        if input(f"是否删除组件“{i[0]}”?[Y/n]").upper() == "Y":
            delProgramList.append(i)
            for x in i[1]:
                if x == "/*" or x == "/":  # 为了防止个人疏忽,出现危险命令,所以如果有最危险的 /* 会直接跳过该命令的写入
                    continue
                delProramCommand += f"rm -rfv \"{x}\"\n"
    if len(delProgramList) == 0:
        print("您已经删除了所有可删除的组件,如果需要使用被删除的组件,请重新安装该软件安装包")
        input("按回车退出")
        exit()
    print("开始删除")
    file = open("/tmp/deepin-wine-clean.sh", "w")
    file.write(delProramCommand)
    file.close()
    os.system("pkexec bash /tmp/deepin-wine-clean.sh")
    input("按回车键退出程序")