From 8db939e44afbdec3faabdea47e3df311aa05ebda Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 2 May 2025 22:08:29 +0100 Subject: [PATCH] Avoid failing on an empty script. Fixes #65 --- src/manage/scriptutils.py | 2 +- tests/test_scriptutils.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/manage/scriptutils.py b/src/manage/scriptutils.py index 00f35c0..99e99da 100644 --- a/src/manage/scriptutils.py +++ b/src/manage/scriptutils.py @@ -142,7 +142,7 @@ def _read_script(cmd, script, encoding): except OSError as ex: raise LookupError(script) from ex with f: - first_line = next(f).rstrip() + first_line = next(f, "").rstrip() if first_line.startswith("#!"): try: return _parse_shebang(cmd, first_line) diff --git a/tests/test_scriptutils.py b/tests/test_scriptutils.py index 53ec7f7..f33b5a6 100644 --- a/tests/test_scriptutils.py +++ b/tests/test_scriptutils.py @@ -33,6 +33,7 @@ def _fake_install(v, **kwargs): ] @pytest.mark.parametrize("script, expect", [ + ("", None), ("#! /usr/bin/test1.0\n#! /usr/bin/test2.0\n", "1.0"), ("#! /usr/bin/test2.0\n#! /usr/bin/test1.0\n", "2.0"), ("#! /usr/bin/test1.0.exe\n#! /usr/bin/test2.0\n", "1.0"),