~michael-sheldon/ubuntu-touch-session/fix-1659388

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash

export HOME=/home/phablet
echo "Redirecting output to local session logs"
exec &> "$HOME/.ubuntu-session/logs/ubuntu-session.log"

on_stop()
{
    echo "Stopping services..."
    for pid in "${pids[@]}"
    do
        tuple=( $pid )
        echo "Stopping ${tuple[0]}"
        kill ${tuple[1]}
    done
    echo "Killing session bus..."
    kill ${DBUS_SESSION_BUS_PID}
    echo "Session stopped."
}

if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
    echo "Starting session bus"
    export `dbus-launch`
    if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
        echo "Unable to start session bus"
        exit 1
    fi
fi

# Initialize shell, env, etc

export HOSTNAME=android
export SHELL=/system/bin/sh
export TERM=linux
export ANDROID_CACHE=/cache
export LOOP_MOUNTPOINT=/mnt/obb
export ASEC_MOUNTPOINT=/mnt/asec
export ANDROID_PROPERTY_WORKSPACE=8,49152
export ANDROID_ASSETS=/system/app
export ANDROID_BOOTLOGO=1
export USER=phablet
export LD_LIBRARY_PATH=/opt/qt5/lib:/vendor/lib:/system/lib
export QML_IMPORT_PATH=/opt/qt5/imports
export QT_FONT_PATH=/opt/qt5/lib/fonts
export PATH=/opt/qt5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export ANDROID_DATA=/data
export QT_QPA_PLATFORM=hybris
export SHLVL=1
export MKSH=/system/bin/sh
export ANDROID_ROOT=/system
export EXTERNAL_STORAGE=/mnt/sdcard
export QT_PLUGIN_PATH=/opt/qt5/plugins
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export QT_IM_MODULE=maliit

echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" > $HOME/.dbus-session
echo "DBUS_SESSION_BUS_PID=${DBUS_SESSION_BUS_PID}" >> $HOME/.dbus-session

device=`grep Hardware /proc/cpuinfo | awk '{print $3}'`

if [ "$device" == "ventana" ]; then
    services="/etc/tablet-services"
    export GRID_UNIT_PX=10
else
    services="/etc/phone-services"
    export GRID_UNIT_PX=18
fi

if [ ! -d "$HOME/.ubuntu-session/logs/" ]; then
    mkdir -p "$HOME/.ubuntu-session/logs"
fi

while read service; do
    service=( $service )
    arguments=${service[@]:1}
    service_path=( $(echo "${service[0]}" | tr "/" " ") )
    binary=${service_path[${#service_path[@]}-1]}
    ${service[0]} $arguments &> "$HOME/.ubuntu-session/logs/$binary.log" &
    pids=("${pids[@]}" "${service[0]} $!")
    echo "Started ${service[0]} with pid $!"
done < "$services"

trap 'on_stop' TERM

wait