neutralino-appimage-bundler
Version:
Bundles your Neutralino project in AppImage
38 lines (36 loc) • 1.41 kB
text/typescript
export default class AppRun
{
public static generate(binary: string, sudo?: boolean): string
{
const sudo_commands = [
'SELF=$(readlink -f "$0")',
'HERE=${SELF%/*}',
'if [ "$EUID" -ne 0 ]',
' then echo "It requires root permissions to execute the file."',
' exit',
'fi'
];
return [
'#!/bin/bash',
'',
`${sudo ? sudo_commands.join('\n') + '\n' : ''}`,
'if [ -z "$APPDIR" ] ; then',
' path="$(dirname "$(readlink -f "${THIS}")")"',
' while [[ "$path" != "" && ! -e "$path/$1" ]]; do',
' path=${path%/*}',
' done',
' APPDIR="$path"',
'fi',
'',
'export PATH="${APPDIR}:${APPDIR}/usr/sbin:${PATH}"',
'export XDG_DATA_DIRS="./share/:/usr/share/gnome:/usr/local/share/:/usr/share/:${XDG_DATA_DIRS}"',
'export LD_LIBRARY_PATH="${APPDIR}/usr/lib:${LD_LIBRARY_PATH}"',
'export XDG_DATA_DIRS="${APPDIR}"/usr/share/:"${XDG_DATA_DIRS}":/usr/share/gnome/:/usr/local/share/:/usr/share/',
'export GSETTINGS_SCHEMA_DIR="${APPDIR}/usr/share/glib-2.0/schemas:${GSETTINGS_SCHEMA_DIR}"',
'',
'cd "$APPDIR"',
'',
`exec "$APPDIR/${binary}" $@`
].join('\n');
}
};