Better error message for +launch

This commit is contained in:
Kovid Goyal 2021-06-28 19:38:51 +05:30
parent 90164dfee7
commit 2105940286
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -49,13 +49,22 @@ def complete(args: List[str]) -> None:
def launch(args: List[str]) -> None:
import runpy
sys.argv = args[1:]
exe = args[1]
try:
exe = args[1]
except IndexError:
raise SystemExit(
'usage: kitty +launch script.py [arguments to be passed to script.py ...]\n\n'
'script.py will be run with full access to kitty code. If script.py is '
'prefixed with a : it will be searched for in PATH'
)
if exe.startswith(':'):
import shutil
q = shutil.which(exe[1:])
if not q:
raise SystemExit('{} not found in PATH'.format(args[1][1:]))
raise SystemExit(f'{exe[1:]} not found in PATH')
exe = q
if not os.path.exists(exe):
raise SystemExit(f'{exe} does not exist')
runpy.run_path(exe, run_name='__main__')