use new XDG profile
this might be subject to change, due to exessive problems still needing fixes
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
#!/bin/python
|
||||
|
||||
import os
|
||||
from sys import stderr
|
||||
|
||||
def error(msg: str):
|
||||
print(f"\033[91m{msg}\033[0m", file=stderr)
|
||||
|
||||
def validate_path(path: str, outdir: str, outpath: str) -> bool:
|
||||
if (os.path.isdir(outdir) == False):
|
||||
error(f"'{outdir}' does not exist! can't write .desktop file!")
|
||||
return False
|
||||
|
||||
if (os.path.exists(outpath)):
|
||||
error(f"'{outpath}' already exists!")
|
||||
return False
|
||||
|
||||
if (os.path.isfile(path) == False):
|
||||
error(f"file does not exist: '{path}'")
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def create_desktop_file(path: str) -> int:
|
||||
outdir = os.environ['HOME'] + "/.local/share/applications"
|
||||
outpath = outdir + "/" + os.path.basename(path)
|
||||
|
||||
if (validate_path(path, outdir, outpath) == False):
|
||||
return 1
|
||||
|
||||
f_in = open(path, "r")
|
||||
f_out = open(outpath, "w")
|
||||
|
||||
while (True):
|
||||
ln = f_in.readline();
|
||||
|
||||
if (len(ln) == 0):
|
||||
break
|
||||
|
||||
if (ln.startswith("Exec=")):
|
||||
lns = ln.split('=', 1)
|
||||
ln = f"{lns[0]}=prime-run {lns[1]}"
|
||||
|
||||
f_out.write(ln)
|
||||
|
||||
f_in.close()
|
||||
f_out.close()
|
||||
return 0
|
||||
|
||||
def main(argc: int, argv: list[str]) -> int:
|
||||
|
||||
if (argc <= 1):
|
||||
error("incorrect amount of arguments! expected: 'desktop file path'")
|
||||
return 1
|
||||
|
||||
err = 0
|
||||
i = 1
|
||||
while (i < argc):
|
||||
err |= create_desktop_file(argv[i])
|
||||
i += 1
|
||||
|
||||
return err
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
exit(main(len(sys.argv), sys.argv));
|
||||
Reference in New Issue
Block a user