xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-graphics/wayland/weston-init/weston-start (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun# Copyright (C) 2016 O.S. Systems Software LTDA.
3*4882a593Smuzhiyun# Copyright (C) 2016 Freescale Semiconductor
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunexport PATH="/sbin:/usr/sbin:/bin:/usr/bin"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyunusage() {
8*4882a593Smuzhiyun	cat <<EOF
9*4882a593Smuzhiyun	$0 [<weston options>]
10*4882a593SmuzhiyunEOF
11*4882a593Smuzhiyun}
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun## Module support
14*4882a593Smuzhiyunmodules_dir=@DATADIR@/weston-start
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun# Add weston extra argument
17*4882a593Smuzhiyunadd_weston_argument() {
18*4882a593Smuzhiyun	weston_args="$weston_args $1"
19*4882a593Smuzhiyun}
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun## Add module to --modules argument
22*4882a593Smuzhiyunadd_weston_module() {
23*4882a593Smuzhiyun	if [[ "x${weston_modules}" == "x" ]]; then
24*4882a593Smuzhiyun		weston_modules="--modules "
25*4882a593Smuzhiyun	fi;
26*4882a593Smuzhiyun	weston_modules+="${1},"
27*4882a593Smuzhiyun}
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunif [ -n "$WAYLAND_DISPLAY" ]; then
30*4882a593Smuzhiyun	echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet."
31*4882a593Smuzhiyun	exit 1
32*4882a593Smuzhiyunfi
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunif [ -n "$WESTON_USER" ]; then
35*4882a593Smuzhiyun	if [ -z "$WESTON_GROUP" ]; then
36*4882a593Smuzhiyun		# no explicit WESTON_GROUP given, therefore use WESTON_USER
37*4882a593Smuzhiyun		export WESTON_GROUP="${WESTON_USER}"
38*4882a593Smuzhiyun	fi
39*4882a593Smuzhiyunfi
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunweston_args=$*
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun# Load and run modules
44*4882a593Smuzhiyunif [ -d "$modules_dir" ]; then
45*4882a593Smuzhiyun	for m in "$modules_dir"/*; do
46*4882a593Smuzhiyun		# Skip backup files
47*4882a593Smuzhiyun		if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
48*4882a593Smuzhiyun			continue
49*4882a593Smuzhiyun		fi
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun		# process module
52*4882a593Smuzhiyun		. $m
53*4882a593Smuzhiyun		if [[ x"{$weston_modules}" != "x" ]]; then
54*4882a593Smuzhiyun			add_weston_argument "${weston_modules}"
55*4882a593Smuzhiyun		fi;
56*4882a593Smuzhiyun	done
57*4882a593Smuzhiyunfi
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunif test -z "$XDG_RUNTIME_DIR"; then
60*4882a593Smuzhiyun	export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}`
61*4882a593Smuzhiyun	if ! test -d "$XDG_RUNTIME_DIR"; then
62*4882a593Smuzhiyun		mkdir --parents $XDG_RUNTIME_DIR
63*4882a593Smuzhiyun		chmod 0700 $XDG_RUNTIME_DIR
64*4882a593Smuzhiyun	fi
65*4882a593Smuzhiyun	if [ -n "$WESTON_USER" ]
66*4882a593Smuzhiyun	then
67*4882a593Smuzhiyun		chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR
68*4882a593Smuzhiyun	fi
69*4882a593Smuzhiyunfi
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunsu -c "XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` weston $weston_args --log=/tmp/weston.log" $WESTON_USER
72