summaryrefslogtreecommitdiff
path: root/scripts/rvi
blob: 6683c525645dfba6c76ba1f966e94649877cd399 (plain)
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
#!/bin/sh
#
# Copyright (C) 2014, Jaguar Land Rover
#
# This program is licensed under the terms and conditions of the
# Mozilla Public License, version 2.0.  The full text of the 
# Mozilla Public License is at https://www.mozilla.org/MPL/2.0/
#

#
# Setup a correct configuration and launch an RVI release node.
# If a UUID file has not been created, it will be done at this time.
#

SELF_DIR=$(dirname $(readlink -f "$0"))
CONFIG_DIR=/etc/opt/rvi
BIN_DIR=/opt/rvi

usage() {
    echo "Usage: $0 -c config_file"
    echo "  -c config_file        Specify the configuration "
    echo "Configuration data is read from the configuration file."
    exit 1
}

while getopts "c:" o; do
    case "${o}" in
        c)
            CONFIG_FILE=${OPTARG}
            ;;
        *)
            usage
            ;;
    esac
done

if [ -z "${CONFIG_FILE}" ] ; then
    echo "Missing -c flag"
    usage
fi

# Check if we have a uuid file.
if [ ! -f ${CONFIG_DIR}/device_id ]
then
    echo "Creating device ID in ${CONFIG_DIR}/device_id"
    cat /proc/sys/kernel/random/uuid > ${CONFIG_DIR}/device_id
fi

# 
# Generate a config file that will end up as
# /tmp/rvi/sys.config
#
(
    cd /tmp/
    rm -rf rvi
    export ERL_LIBS=${BIN_DIR}/setup:${BIN_DIR}/lib/
    ${BIN_DIR}/setup_gen rvi $CONFIG_FILE rvi
)

# Did we succeed with config generation?
if [ "$?" != "0" ]
then
    # Nope
    exit "$?"
fi   

# Copy created config file to /etc/opt/rvi/sys.config,
# which is symlinked to by /opt/rvi/sys.config
cp /tmp/rvi/sys.config /etc/opt/rvi/sys.config

exec /opt/rvi/bin/rvi start