diff --git a/applications/xonsh/entrypoint.sh b/applications/xonsh/entrypoint.sh index 91ee2ec..a89b9a0 100644 --- a/applications/xonsh/entrypoint.sh +++ b/applications/xonsh/entrypoint.sh @@ -1 +1,2 @@ +#! /bin/bash -i {{ python-executable }} -u "${APPDIR}/opt/python{{ python-version }}/bin/xonsh" "$@" diff --git a/python_appimage/appimage/relocate.py b/python_appimage/appimage/relocate.py index 26e74cd..2925ea6 100644 --- a/python_appimage/appimage/relocate.py +++ b/python_appimage/appimage/relocate.py @@ -296,6 +296,7 @@ def relocate_python(python=None, appdir=None): entrypoint_path = PREFIX + '/data/entrypoint.sh' entrypoint = load_template(entrypoint_path, python=PYTHON_X_Y) dictionary = {'entrypoint': entrypoint, + 'shebang': '#! /bin/bash', 'tcltk-env': tcltk_env_string(PYTHON_PKG)} _copy_template('apprun.sh', apprun, **dictionary) diff --git a/python_appimage/commands/build/app.py b/python_appimage/commands/build/app.py index c98e1cb..8c9add9 100644 --- a/python_appimage/commands/build/app.py +++ b/python_appimage/commands/build/app.py @@ -247,10 +247,17 @@ def execute(appdir, name=None, python_version=None, linux_tag=None, if entrypoint_path: entrypoint_path = entrypoint_path[0] log('BUNDLE', os.path.basename(entrypoint_path)) + + with open(entrypoint_path) as f: + shebang = f.readline().strip() + if not shebang.startswith('#!'): + shebang = '#! /bin/bash' + entrypoint = load_template(entrypoint_path, **dictionary) python_pkg = 'AppDir/opt/python{0:}/lib/python{0:}'.format( python_version) dictionary = {'entrypoint': entrypoint, + 'shebang': shebang, 'tcltk-env': tcltk_env_string(python_pkg)} copy_template(PREFIX + '/data/apprun.sh', 'AppDir/AppRun', **dictionary) diff --git a/python_appimage/data/apprun.sh b/python_appimage/data/apprun.sh index af416de..a0315d2 100755 --- a/python_appimage/data/apprun.sh +++ b/python_appimage/data/apprun.sh @@ -1,4 +1,4 @@ -#! /bin/bash +{{ shebang }} # Export APPRUN if running from an extracted image self="$(readlink -f -- $0)"