summaryrefslogtreecommitdiff
path: root/build.sh
blob: daa0fc03582fbcd469d5b7bab83b176f5c551ac2 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#! /bin/bash

export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )

BINARY_FILE="edge-orchestration"
SERVICE_DIR="/etc/systemd/system"
BINARY_DIR=$BASE_DIR/"src/CMain/bin"
SERVICE_FILE="edge-orchestration.service"
DBUS_CONF_FILE="org.tizen.orchestration.conf"
DBUS_CONF_FILE_x86="org.tizen.orchestration.conf.amd64"
DBUS_SERVICE_FILE="org.tizen.orchestration.service"
DBUS_CONF_DIR="/etc/dbus-1/system.d"
DBUS_SERVICE_DIR="/usr/share/dbus-1/system-services"

BUILD_ALL=false

echo "*****************************"
echo " Target Binary arch is amd64 "
echo "*****************************"
export GOARCH=amd64
export GOPATH=$GOPATH:$BASE_DIR:$BASE_DIR/vendor

ORG_VENDOR_DIR='vendor'
CUR_VENDOR_DIR='vendor/src'
if [ ! -d $BASE_DIR/$CUR_VENDOR_DIR ]; then
    ln -s $BASE_DIR/$ORG_VENDOR_DIR $BASE_DIR/$CUR_VENDOR_DIR
fi

if [ "$1" = "all" ]; then
    BUILD_ALL=true
fi


function install_prerequisite() {
    echo ""
    echo "-----------------------------------"
    echo " Install prerequisite packages"
    echo "-----------------------------------"
    go get github.com/axw/gocov/gocov
    go get github.com/matm/gocov-html
    go get github.com/Songmu/make2help/cmd/make2help
}

function build_clean() {
    echo ""
    echo "-----------------------------------"
    echo " Build clean"
    echo "-----------------------------------"
    make clean
}

function build_binary() {
    echo ""
    echo "----------------------------------------"
    echo " Create Executable binary from GoMain"
    echo "----------------------------------------"
    make build-binary
}

function build_object() {
    echo ""
    echo "----------------------------------------"
    echo " Create Static object of Orchestration"
    echo "----------------------------------------"
    make build-object
}

function build_dbus() {
    echo ""
    echo "----------------------------------------"
    echo " Create Executable binary from CMain"
    echo "----------------------------------------"
    make build-dbus-server

    echo ""
    echo "--------------------------------------------------"
    echo " Create Shared Object from libedge-orchestration"
    echo "--------------------------------------------------"
    make build-dbus-client
}

function build_test() {
    echo ""
    echo "-------------------------------------"
    echo " Build test to calculate Coverage"
    echo "-------------------------------------"
    mkdir -p /tmp/foo
    make test
}

function lint_src_code() {
    echo ""
    echo "---------------------------------------"
    echo " Analysis source code golint & go vet"
    echo "---------------------------------------"
    make lint
}

function register_service() {
    echo ""
    echo "-----------------------------------"
    echo "  Create Service File [SuperUser]"
    echo "-----------------------------------"

    sudo systemctl stop $SERVICE_FILE
    sudo cp $BINARY_DIR/$BINARY_FILE /usr/bin
    sudo cp $BASE_DIR/packaging/$SERVICE_FILE $SERVICE_DIR
    sudo cp $BASE_DIR/packaging/$DBUS_CONF_FILE_x86 $DBUS_CONF_DIR/$DBUS_CONF_FILE
    sudo cp $BASE_DIR/packaging/$DBUS_SERVICE_FILE $DBUS_SERVICE_DIR
    ls -al $SERVICE_DIR | grep $SERVICE_FILE

    echo ""
    echo "----------------------------------------"
    echo "  Register Edge-Orchestration Service"
    echo "----------------------------------------"

    sudo systemctl daemon-reload
    sudo systemctl restart $SERVICE_FILE
    sudo systemctl status $SERVICE_FILE
}


if [ "$BUILD_ALL" = true ]
then
    build_clean
    install_prerequisite
    build_test
    build_object
    build_dbus
    build_binary
    lint_src_code
    register_service
else
    build_clean
    build_binary
fi