-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·117 lines (97 loc) · 3.09 KB
/
install.sh
File metadata and controls
executable file
·117 lines (97 loc) · 3.09 KB
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
#!/usr/bin/env bash
USER_HOME=""
CBM_DIRNAME=".cbm"
CBM_GLOBAL_PATH=""
CBM_PORT=""
CBM_BACKEND_DIR="backend"
CBM_GLOBAL_BACKEND_DIR=""
CBM_API_ENV_FILENAME=".env"
CBM_API_ENV_PATH=""
function validateHome() {
while true; do
echo -e "\e[1;94mPlease validate your HOME directory: $HOME (Yy/Nn)\e[0m"
read -r yn
case $yn in
[Yy]*)
USER_HOME="$HOME"
CBM_GLOBAL_PATH="$USER_HOME/$CBM_DIRNAME"
mkdir -p "$USER_HOME/$CBM_DIRNAME"
break
;;
[Nn]*) exit ;;
*) echo -e "\e[1;94mPlease answer yes or no.\e[0m" ;;
esac
done
}
function copyConfigs() {
FILES=("watcher" "func-test")
for file in ${FILES[*]}; do
cp "$CBM_DIRNAME/$file.toml" "$CBM_GLOBAL_PATH"
done
}
function installBackend() {
CBM_GLOBAL_BACKEND_DIR="$CBM_GLOBAL_PATH/$CBM_BACKEND_DIR"
CBM_API_ENV_PATH="$CBM_GLOBAL_PATH/$CBM_BACKEND_DIR/$CBM_API_ENV_FILENAME"
echo -e "\e[1;94mRemoving directory: $CBM_GLOBAL_BACKEND_DIR\e[0m"
rm -rfd "$CBM_GLOBAL_BACKEND_DIR"
echo -e "\e[1;94mInstalling CodeBaseManager Backend in $CBM_GLOBAL_BACKEND_DIR\e[0m"
mkdir -p "$CBM_GLOBAL_BACKEND_DIR"
cp -r "$CBM_BACKEND_DIR"/* "$CBM_GLOBAL_BACKEND_DIR"
cp -r go.mod go.sum Dockerfile "$CBM_GLOBAL_PATH"
}
function writePort() {
echo "CBM_PORT=$CBM_PORT" >"$CBM_API_ENV_PATH"
cd "$CBM_GLOBAL_BACKEND_DIR" && make api-clean-stop && make api-start || return 1
}
function getPortCBM() {
local wd
wd=$(pwd)
while true; do
if [[ $CBM_PORT != "" ]]; then echo -e "\n\e[1;94m$CBM_PORT didn't work\e[0m"; fi
echo -e "\e[1;94mPlease enter a valid port on which Cbm Backend could run:\e[0m"
read -r CBM_PORT
echo -e "\e[1;94mLaunching CodeBaseManager Backend ...\n\n\e[0m"
if ! writePort; then
cd "$wd" || echo -e "\e[1;94mProblem with CodebaseManager installation.\e[0m" && exit
continue
else
break
fi
done
cd "$wd" || exit 1
echo -e "\e[1;94mApi Running ... \n\e[0m"
}
function installCbm() {
# Installing the CLI
BIN_PATH="/usr/bin"
echo -e "\e[1;94mBuilding CodeBaseManager(cli)...\e[0m"
go build -o cbm cli/main.go
if [[ $? != 0 ]]; then
echo "CodeBaseManager(cli) couldn't build"
exit 1
fi
# Installing the Watcher
WATCHER="cbm-watcher"
WHERE="watcher"
echo -e "\e[1;94mBuilding $WATCHER...\e[0m"
go build -o $WATCHER $WHERE/main.go
if [[ $? != 0 ]]; then
echo "$WATCHER Couldn't build"
exit 1
fi
echo -e "\e[1;94mMoving $WATCHER to $BIN_PATH\e[0m"
sudo mv $WATCHER $BIN_PATH
# Preping home directory
validateHome
copyConfigs
# Installing backend
if ! installBackend; then
echo -e "\e[1;94mProblem with CodebaseManager installation.\e[0m"
exit 1
fi
getPortCBM
echo -e "\e[1;94mMoving CodeBaseManager(cli) to $BIN_PATH\e[0m"
sudo mv cbm $BIN_PATH
echo -e "\e[1;94mCodebase manager Successfully Installed !!\n\n\e[0m"
}
installCbm