appimageTools.wrapAppImage: Fix passing arguments to wrapped executable

appimage-exec.sh parses its arguments with getopts, so we need to
delimit arguments intended for the wrapped executable with ‘--’, in
case some of them begin with ‘-’.

Without this fix, a wrapped application like Zulip Desktop can’t be
opened the normal way using the .desktop file, which includes
‘Exec=zulip --no-sandbox %U’ (as per the electron-builder default):

$ gtk-launch zulip.desktop
/usr/bin/appimage-exec.sh: illegal option -- -
Usage: appimage-run [appimage-run options] <AppImage> [AppImage options]
[…]

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg 2021-07-01 17:08:24 -07:00
parent 3a8d7958a6
commit b5160bba86

View File

@ -45,7 +45,7 @@ rec {
targetPkgs = pkgs: [ appimage-exec ] targetPkgs = pkgs: [ appimage-exec ]
++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs; ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
runScript = "appimage-exec.sh -w ${src}"; runScript = "appimage-exec.sh -w ${src} --";
} // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage)))); } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))));
wrapType2 = args@{ name, src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage wrapType2 = args@{ name, src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage