80 lines
3.3 KiB
Python
Executable File
80 lines
3.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
#chrootEnvPath="/opt/new-system-env"
|
|
chrootEnvPath="/"
|
|
if not os.path.exists("/gx-env/desktop"):
|
|
os.makedirs("/gx-env/desktop")
|
|
if not os.path.exists("/gx-env/shell"):
|
|
os.makedirs("/gx-env/shell")
|
|
if not os.path.exists("/gx-env/icons"):
|
|
os.makedirs("/gx-env/icons")
|
|
for i in os.listdir("{}/usr/share/applications".format(chrootEnvPath)):
|
|
if i == "gdebi.desktop" or i == "spark-store.desktop":
|
|
continue
|
|
#if os.path.exists("/usr/share/applications/gx-env-{}".format(i)):
|
|
# continue
|
|
info = ""
|
|
try:
|
|
with open("{}/usr/share/applications/{}".format(chrootEnvPath, i), "r") as file:
|
|
info = file.read()
|
|
except:
|
|
try:
|
|
with open("{}/opt/apps/{}/entries/applications/{}".format(chrootEnvPath, os.path.splitext(os.path.basename(i))[0], i), "r") as file:
|
|
info = file.read()
|
|
except:
|
|
continue
|
|
newInfo = ""
|
|
for r in info.splitlines():
|
|
if "exec=" in r.lower():
|
|
#newInfo += "Exec=gx-env-run " + r[5:].strip() + "\n"
|
|
with open("/gx-env/shell/gx-env-{}.sh".format(os.path.splitext(os.path.basename(i))[0]), "w") as file:
|
|
command = ""
|
|
program = r[5:].strip()
|
|
#try:
|
|
# if sys.argv[1] == "1":
|
|
# command += " --no-sandbox "
|
|
#except:
|
|
# pass
|
|
|
|
if "%F" in program:
|
|
program = program.replace("%F", "$1")
|
|
command += " %F "
|
|
if "%f" in program:
|
|
program = program.replace("%f", "$2")
|
|
command += " %f "
|
|
if "%u" in program:
|
|
program = program.replace("%u", "$3")
|
|
command += " %u "
|
|
if "%U" in program:
|
|
program = program.replace("%U", "$4")
|
|
command += " %U "
|
|
try:
|
|
if sys.argv[1] == "1":
|
|
file.write("#!/bin/bash\n" + program + " --no-sandbox")
|
|
else:
|
|
file.write("#!/bin/bash\n" + program)
|
|
except:
|
|
file.write("#!/bin/bash\n" + program)
|
|
newInfo += "Exec=gx-env-run bash \"/gx-env/shell/gx-env-{}.sh\" {} \n".format(os.path.splitext(os.path.basename(i))[0], command)
|
|
elif "name=" in r.lower() or "name[" in r.lower():
|
|
newInfo += r + "(兼容模式)\n"
|
|
elif "icon=" in r.lower():
|
|
if os.path.exists(r[5:]):
|
|
newInfo += "Icon=/opt/new-system-env/" + r[5:] + "\n"
|
|
else:
|
|
path = subprocess.getoutput("find /usr/share/icons -name '{}.???' | head -n1".format(r[5:]))
|
|
if os.path.islink(path):
|
|
os.system("cp '{}' '/gx-env/icons/{}'".format(path, os.path.basename(path)))
|
|
newInfo += "Icon=/opt/new-system-env/gx-env/icons/" + os.path.basename(path) + "\n"
|
|
else:
|
|
newInfo += "Icon=/opt/new-system-env/" + path + "\n"
|
|
else:
|
|
newInfo += r + "\n"
|
|
print(newInfo)
|
|
print(i)
|
|
with open("/gx-env/desktop/gx-env-{}".format(i), "w") as file:
|
|
file.write(newInfo)
|