source sync 20190409
[platform/core/system/edge-orchestration.git] / build.sh
1 #! /bin/bash
2
3 export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )
4
5 BINARY_FILE="edge-orchestration"
6 SERVICE_DIR="/etc/systemd/system"
7 BINARY_DIR=$BASE_DIR/"src/CMain/bin"
8 SERVICE_FILE="edge-orchestration.service"
9 DBUS_CONF_FILE="org.tizen.orchestration.conf"
10 DBUS_CONF_FILE_x86="org.tizen.orchestration.conf.amd64"
11 DBUS_SERVICE_FILE="org.tizen.orchestration.service"
12 DBUS_CONF_DIR="/etc/dbus-1/system.d"
13 DBUS_SERVICE_DIR="/usr/share/dbus-1/system-services"
14
15 BUILD_ALL=false
16
17 echo "*****************************"
18 echo " Target Binary arch is amd64 "
19 echo "*****************************"
20 export GOARCH=amd64
21 export GOPATH=$GOPATH:$BASE_DIR:$BASE_DIR/vendor
22
23 ORG_VENDOR_DIR='vendor'
24 CUR_VENDOR_DIR='vendor/src'
25 if [ ! -d $BASE_DIR/$CUR_VENDOR_DIR ]; then
26     ln -s $BASE_DIR/$ORG_VENDOR_DIR $BASE_DIR/$CUR_VENDOR_DIR
27 fi
28
29 if [ "$1" = "all" ]; then
30     BUILD_ALL=true
31 fi
32
33
34 function install_prerequisite() {
35     echo ""
36     echo "-----------------------------------"
37     echo " Install prerequisite packages"
38     echo "-----------------------------------"
39     go get github.com/axw/gocov/gocov
40     go get github.com/matm/gocov-html
41     go get github.com/Songmu/make2help/cmd/make2help
42 }
43
44 function build_clean() {
45     echo ""
46     echo "-----------------------------------"
47     echo " Build clean"
48     echo "-----------------------------------"
49     make clean
50 }
51
52 function build_binary() {
53     echo ""
54     echo "----------------------------------------"
55     echo " Create Executable binary from GoMain"
56     echo "----------------------------------------"
57     make build-binary
58 }
59
60 function build_object() {
61     echo ""
62     echo "----------------------------------------"
63     echo " Create Static object of Orchestration"
64     echo "----------------------------------------"
65     make build-object
66 }
67
68 function build_dbus() {
69     echo ""
70     echo "----------------------------------------"
71     echo " Create Executable binary from CMain"
72     echo "----------------------------------------"
73     make build-dbus-server
74
75     echo ""
76     echo "--------------------------------------------------"
77     echo " Create Shared Object from libedge-orchestration"
78     echo "--------------------------------------------------"
79     make build-dbus-client
80 }
81
82 function build_test() {
83     echo ""
84     echo "-------------------------------------"
85     echo " Build test to calculate Coverage"
86     echo "-------------------------------------"
87     mkdir -p /tmp/foo
88     make test
89 }
90
91 function lint_src_code() {
92     echo ""
93     echo "---------------------------------------"
94     echo " Analysis source code golint & go vet"
95     echo "---------------------------------------"
96     make lint
97 }
98
99 function register_service() {
100     echo ""
101     echo "-----------------------------------"
102     echo "  Create Service File [SuperUser]"
103     echo "-----------------------------------"
104
105     sudo systemctl stop $SERVICE_FILE
106     sudo cp $BINARY_DIR/$BINARY_FILE /usr/bin
107     sudo cp $BASE_DIR/packaging/$SERVICE_FILE $SERVICE_DIR
108     sudo cp $BASE_DIR/packaging/$DBUS_CONF_FILE_x86 $DBUS_CONF_DIR/$DBUS_CONF_FILE
109     sudo cp $BASE_DIR/packaging/$DBUS_SERVICE_FILE $DBUS_SERVICE_DIR
110     ls -al $SERVICE_DIR | grep $SERVICE_FILE
111
112     echo ""
113     echo "----------------------------------------"
114     echo "  Register Edge-Orchestration Service"
115     echo "----------------------------------------"
116
117     sudo systemctl daemon-reload
118     sudo systemctl restart $SERVICE_FILE
119     sudo systemctl status $SERVICE_FILE
120 }
121
122
123 if [ "$BUILD_ALL" = true ]
124 then
125     build_clean
126     install_prerequisite
127     build_test
128     build_object
129     build_dbus
130     build_binary
131     lint_src_code
132     register_service
133 else
134     build_clean
135     build_binary
136 fi
137