-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStartEthereum.sh
116 lines (90 loc) · 4.44 KB
/
StartEthereum.sh
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
#!/bin/bash
. ./Vars.sh
NO_CACHE=""
if [[ "$1" == "no-cache" ]]
then
NO_CACHE="--no-cache"
fi
echo -e "\n\n"
echo -e "##################################################"
echo -e "############# Deploying Ganache ###########"
echo -e "##################################################\n\n"
sleep ${SLEEP_SECONDS}
if [[ -d ./ethereum/smart-contracts && ! -z "$NO_CACHE" ]]
then
echo "Removing existing ethereum smart contracts cache."
rm -r -f ./ethereum/smart-contracts
fi
if [[ ! -d ./ethereum/smart-contracts ]]
then
echo "Cloning ethereum smart contracts..."
git clone https://github.com/TIHBS/EthereumResourceManager.git ./ethereum/smart-contracts
fi
if [[ ! -z "$NO_CACHE" ]]
then
docker-compose build --no-cache ganache
fi
docker compose up ganache -d
echo -e "\n\n"
echo -e "################################################"
echo -e "#### Deploying Ethereum Smart Contracts ####"
echo -e "################################################\n\n"
sleep ${SLEEP_SECONDS}
TRUFFLE_CONTAINER_ID=$(docker container ls --all --filter=ancestor=$GANACHE_IMAGE_ID --format "{{.ID}}" | tail -n 1)
echo "Using 'truffle migrate' to deploy Ethereum smart contracts to blockchain on container $TRUFFLE_CONTAINER_ID."
docker exec $TRUFFLE_CONTAINER_ID truffle migrate | tee migrate_output
HOTEL_MANAGER_ADDRESS=$(grep "contract address:" ./migrate_output | awk -F ": " '{print $2}' | sed -n '4p')
RESOURCE_MANAGER_ADDRESS=$(grep "contract address:" ./migrate_output | awk -F ": " '{print $2}' | sed -n '2p')
echo "Ethereum RMSC address is ${RESOURCE_MANAGER_ADDRESS}"
echo "Ethereum HotelMgtSC address is ${HOTEL_MANAGER_ADDRESS}"
yes | cp ./scip-gateway/config/.connectionProfiles.json ./scip-gateway/config/connectionProfiles.json
yes | cp ./client-application/frontend/src/environments/.environment.development.ts ./client-application/frontend/src/environments/environment.development.ts
yes | cp ./client-application/frontend/src/environments/.environment.ts ./client-application/frontend/src/environments/environment.ts
sed -i -e "s/HOST/${HOST}/g" ./scip-gateway/config/connectionProfiles.json
sed -i -e "s/HOST/${HOST}/g" ./client-application/frontend/src/environments/environment.ts
sed -i -e "s/HOST/${HOST}/g" ./client-application/frontend/src/environments/environment.development.ts
sed -i -e "s/RMSC/${RESOURCE_MANAGER_ADDRESS}/g" ./scip-gateway/config/connectionProfiles.json
sed -i -e "s/ETH_ADDRESS/${HOTEL_MANAGER_ADDRESS}/g" ./client-application/frontend/src/environments/environment.ts
sed -i -e "s/ETH_ADDRESS/${HOTEL_MANAGER_ADDRESS}/g" ./client-application/frontend/src/environments/environment.development.ts
echo -e "\n\n"
echo -e "##################################################"
echo -e "############# Deploying Gateway ###########"
echo -e "##################################################\n\n"
sleep ${SLEEP_SECONDS}
if [[ ! -z "$NO_CACHE" ]]
then
docker-compose build --no-cache scip-gateway
fi
docker compose up scip-gateway -d
GATEWAY_CONTAINER_ID=$(docker container ls --all --filter=ancestor=$GATEWAY_IMAGE_ID --format "{{.ID}}" | tail -n 1)
if [[ -z "$NO_CACHE" ]]
then
echo "Copying updated connectionProfiles.json to container $GATEWAY_CONTAINER_ID"
docker cp ./scip-gateway/config/connectionProfiles.json ${GATEWAY_CONTAINER_ID}:/root/.bal/connectionProfiles.json
docker cp ./scip-gateway/ethereum/ ${GATEWAY_CONTAINER_ID}:/root/.bal/
docker compose restart scip-gateway
fi
echo -e "\n\n"
echo -e "#############################################################"
echo -e "############# Deploying Client Application ###########"
echo -e "#############################################################\n\n"
sleep ${SLEEP_SECONDS}
if [[ ! -z "$NO_CACHE" ]]
then
docker-compose build --no-cache client-backend
fi
HOST=$HOST docker compose up client-backend -d
echo -e "\n\n"
echo -e "#############################################################"
echo -e "############# Starting Frontend ######################"
echo -e "#############################################################\n\n"
sleep ${SLEEP_SECONDS}
cd client-application/frontend
ng serve --host=0.0.0.0
#echo -e "\n\n"
#echo -e "###################################################"
#echo -e "#### Attaching to SCIP Gateway Container ####"
#echo -e "###################################################\n\n"
#sleep ${SLEEP_SECONDS}
#echo "Attaching to $GATEWAY_CONTAINER_ID. Press Ctrl+C to quit."
#docker container attach $GATEWAY_CONTAINER_ID