mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-20 10:40:09 +00:00
102 lines
3.4 KiB
Bash
Executable File
102 lines
3.4 KiB
Bash
Executable File
#!/bin/sh -eu
|
|
|
|
# if not run from AppImage (eg. extracted), use default values
|
|
APPIMAGE=${APPIMAGE-none}
|
|
ARGV0=${ARGV0-$0}
|
|
|
|
DIR=`dirname $0`
|
|
export LD_LIBRARY_PATH=$DIR/lib${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
|
|
# there is an issue with running_from_path() which evaluates this executable
|
|
# as being system-installed
|
|
#export PATH=$DIR/bin:$PATH
|
|
export QT_QPA_FONTDIR=$DIR/lib/fonts
|
|
export QT_PLUGIN_PATH=$DIR/lib/qt5/plugins
|
|
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_PLUGIN_PATH/platforms
|
|
|
|
usage() {
|
|
printf "usage:\n"
|
|
printf "\t$ARGV0 [--gui [args]]\n"
|
|
printf "\t\tinvokes GUI\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 -h|--help\n"
|
|
printf "\t\tprints this help\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 --appimage-help\n"
|
|
printf "\t\tprints AppImage related options\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 -u|--update [args]\n"
|
|
printf "\t\tupdates AppImage (args will be passed to appimageupdatetool)\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 --tool uv --help\n"
|
|
printf "\t\tprints command-line UltraGrid help\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 --tool <t> [args]\n"
|
|
printf "\t\tinvokes specified tool\n"
|
|
printf "\t\ttool may be: $(ls $DIR/bin | tr '\n' ' ')\n"
|
|
printf "\n"
|
|
printf "\t$ARGV0 args\n"
|
|
printf "\t\tinvokes command-line UltraGrid\n"
|
|
printf "\n"
|
|
}
|
|
|
|
update_notify_days=35
|
|
## Print update hint if UG binary is older than $update_notify_days days, if $ULTRAGRID_AUTOUPDATE=1 triggers update.
|
|
handle_updates() {
|
|
if [ $APPIMAGE = none ]; then
|
|
return
|
|
fi
|
|
if [ -n ${ULTRAGRID_AUTOUPDATE-""} ]; then
|
|
if [ $ULTRAGRID_AUTOUPDATE -eq 1 ]; then
|
|
$DIR/appimageupdatetool $APPIMAGE
|
|
fi
|
|
return
|
|
fi
|
|
if expr $APPIMAGE : '.*continuous' > /dev/null; then
|
|
update_notify_days=7
|
|
fi
|
|
UV_BIN_TIMESTAMP=$(stat --format=%Y $DIR/bin/uv)
|
|
CURR_TIMESTAMP=$(date +%s)
|
|
if [ $CURR_TIMESTAMP -lt $(($UV_BIN_TIMESTAMP + $update_notify_days * 24 * 60 * 60)) ]; then
|
|
return
|
|
fi
|
|
printf "UltraGrid binary older than $update_notify_days days, consider checking updates:\n"
|
|
printf "\n"
|
|
printf "$ARGV0 -u\n"
|
|
printf "\t- updates AppImage\n"
|
|
printf "$ARGV0 -u -j; $? -eq 1 && echo Update available || echo No update available\n"
|
|
printf "\t- check for update without actually updating\n"
|
|
printf "$ARGV0 -u -h\n"
|
|
printf "\t- prints update options\n"
|
|
printf "\n"
|
|
printf "Hint: you can set environment variable ULTRAGRID_AUTOUPDATE to 1 for automatic update or 0 to suppress the above message.\n"
|
|
printf "\n"
|
|
}
|
|
|
|
if [ $# -eq 0 -o x"${1-}" = x"--gui" ]; then
|
|
handle_updates
|
|
[ $# -eq 0 ] && usage || shift
|
|
if [ -x $DIR/bin/uv-qt ]; then
|
|
$DIR/bin/uv-qt --with-uv $DIR/uv-wrapper.sh "$@"
|
|
else
|
|
echo "GUI was not compiled in!" >&2
|
|
exit 1
|
|
fi
|
|
elif [ x"$1" = x"--tool" ]; then
|
|
handle_updates
|
|
TOOL=$2
|
|
shift 2
|
|
$DIR/bin/$TOOL "$@"
|
|
elif [ x"$1" = x"-h" -o x"$1" = x"--help" ]; then
|
|
usage
|
|
exit 0
|
|
elif [ x"$1" = x"-u" -o x"$1" = x"--update" ]; then
|
|
shift
|
|
unset LD_LIBRARY_PATH
|
|
$DIR/appimageupdatetool ${1+"$@" }$APPIMAGE
|
|
else
|
|
handle_updates
|
|
$DIR/uv-wrapper.sh "$@"
|
|
fi
|
|
|
|
exit $?
|