AppImage / AppImage/AppImageSpec
Provide facility to invoke alternate payload applications
- Vorherrschende Sprache
- Keine Sprachdaten
- Sterne
- 93
- Forks
- 27
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
While most applications do have a main entry point to get to all their functionality, plenty of apps ship with additional executables for various purposes, like cvlc (a command-line-only interface for VLC), editcap (a command-line pcap file splicer with Wireshark), and so forth. These might be additional binaries, or might be a change of behavior based on the `argv[0]` value of the main application at runtime.
There should be some way to invoke these alternate programs.
---
1. The spec should provide a way to invoke an alternate program than the main payload.
* The spec could provide a way to enumerate additional names and the locations of the respective programs within the AppDir explicitly, through a metadata file (not strictly necessary if the other options below are also implemented).
* In the absence of explicit enumeration, or if an attempted program name was not enumerated, the AppImage should fallback by looking for the program name in a standard search path within the AppDir, e.g., `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`.
* If there is still no matching program after looking at the explicit list and the search path, fallback to invoking the main payload application.
* In all cases, set `argv[0]` to the attempted program name, possibly with a prepended path if one is found within the AppDir. This allows a program to change behavior based only on the name used to invoke it.
2. The spec should specify one or more standard ways to identify which program was intended to be invoked by the user. Possibilities include (any or all could be implemented; the first two are probably the most useful):
* Use `argv[0]` of the invoked AppImage to select the desired program (this works simply by symlinking the AppImage itself to the desired alternate name).
* Use a special command argument at the start of the argument list which is unlikely to be meaningful to payload applications, e.g. `--AppImageRun foobar` contained in `argv[1]` and `argv[2]`, with the remaining arguments passed through to the application. This could be used in .desktop files.
* Use a predefined environment variable name, which could be used in a wrapper script.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.