blob: 0f1bc4c29d19a13c9be6d297e13fb5559304ae06 [file] [log] [blame]
#!/bin/sh
# Copyright (C) 2016 O.S. Systems Software LTDA.
# Copyright (C) 2016 Freescale Semiconductor
export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
usage() {
cat <<EOF
$0 [<openvt arguments>] [-- <weston options>]
EOF
}
## Module support
modules_dir=@DATADIR@/weston-start
# Add weston extra argument
add_weston_argument() {
weston_args="$weston_args $1"
}
# Add openvt extra argument
add_openvt_argument() {
openvt_args="$openvt_args $1"
}
## Add module to --modules argument
add_weston_module() {
if [[ "x${weston_modules}" == "x" ]]; then
weston_modules="--modules "
fi;
weston_modules+="${1},"
}
if [ -n "$WAYLAND_DISPLAY" ]; then
echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet."
exit 1
fi
if [ -n "$WESTON_USER" ]; then
if [ -z "$WESTON_TTY" ]; then
echo "ERROR: If you have WESTON_USER variable set, you also need WESTON_TTY."
exit 1
fi
if [ -z "$WESTON_GROUP" ]; then
# no explicit WESTON_GROUP given, therefore use WESTON_USER
export WESTON_GROUP="${WESTON_USER}"
fi
weston_args_user="-u $WESTON_USER -t $WESTON_TTY"
fi
if [ -n "$DISPLAY" ]; then
launcher="weston"
else
launcher="weston-launch $weston_args_user --"
fi
openvt_args="-s"
while [ -n "$1" ]; do
if [ "$1" = "--" ]; then
shift
break
fi
openvt_args="$openvt_args $1"
shift
done
weston_args=$*
# Load and run modules
if [ -d "$modules_dir" ]; then
for m in "$modules_dir"/*; do
# Skip backup files
if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
continue
fi
# process module
. $m
if [[ x"{$weston_modules}" != "x" ]]; then
add_weston_argument "${weston_modules}"
fi;
done
fi
if test -z "$XDG_RUNTIME_DIR"; then
export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}`
if ! test -d "$XDG_RUNTIME_DIR"; then
mkdir --parents $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
fi
if [ -n "$WESTON_USER" ]
then
chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR
fi
fi
exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log