-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev-tools.sh
More file actions
executable file
·111 lines (105 loc) · 2.8 KB
/
dev-tools.sh
File metadata and controls
executable file
·111 lines (105 loc) · 2.8 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
#!/bin/bash
set -e
# targets
#=========================================
allowed_targets=(
'build'
'start'
'exec'
'stop'
)
script_name="$(cd $(dirname "$0"); pwd -P)/$(basename "$0")"
script_dir="$(dirname "$script_name")"
# @internal, this must be called before we setup the base variables
parse_env() {
if [ ! -f "${script_dir}/.env" ]; then
echo -e "\n\nFile ${script_dir}/.env not found, the file: ${script_dir}/.env.local will be copied for you\n\n"
cp ${script_dir}/.env.local ${script_dir}/.env
fi
set -a
. "${script_dir}/.env"
set +a
if [ -z "$UID" ]; then
echo >&2
echo "IMPORTANT: the env var UID is not set, it is important to set it inside ${script_dir}/.env" >&2
echo >&2
fi
}
parse_env
# base variables
#=========================================
docker_image_name=open-ai-cli-image
docker_container_name=open-ai-cli
build() {
echo -e "Building docker image...\n"
sh -c "docker build -t $docker_image_name ."
}
start() {
echo -e "Running docker container...\n"
sh -c "docker run -d --name $docker_container_name --env-file .env open-ai-cli-image /bin/sh"
}
exec() {
sh -c "docker exec -ti $docker_container_name /bin/sh"
}
stop() {
echo -e "Stopping the container \n"
sh -c "docker rm -f $docker_container_name"
}
#=========================================
#environment specific functions
#=========================================
os_init() {
Linux() { :; }
MINGW() {
docker() {
winpty docker "$@"
}
docker-compose() {
winpty docker-compose "$@"
}
}
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*)
machine=Linux
Linux
;;
Darwin*) machine=Mac ;;
CYGWIN*) machine=Cygwin ;;
MINGW*)
machine=MinGw
MINGW
;;
*) machine="UNKNOWN:${unameOut}" ;;
esac
}
help() {
base64 -d <<<"H4sIAAAAAAAAA1OQjjawNrQ2NrG2NMl9tLD90aIdQJFcBRThxf2PFnZiCi9sB4uhCfY9WjARi9q+
R4s2woWNQSLbHy3ahyKCsEYBLrZo56MFjaj6YCZxodqwYP6jBbsxLV6w/NGCJdiEYeYhyYK5ix8t
mIIhMgdVpP3Rgh2oInBboE43z4UpQfBh5nABAMeKRB91AQAA" | gunzip
base64 -d <<<"ICAvIF9fIFwgfCAgX18gXCB8ICBfX19ffHwgXCB8IHwgICAgL1wgICAgfF8gICBffAogfCB8ICB8
IHx8IHxfXykgfHwgfF9fICAgfCAgXHwgfCAgIC8gIFwgICAgIHwgfCAgCiB8IHwgIHwgfHwgIF9f
Xy8gfCAgX198ICB8IC4gYCB8ICAvIC9cIFwgICAgfCB8ICAKIHwgfF9ffCB8fCB8ICAgICB8IHxf
X19fIHwgfFwgIHwgLyBfX19fIFwgIF98IHxfIAogIFxfX19fLyB8X3wgICAgIHxfX19fX198fF98
IFxffC9fLyAgICBcX1x8X19fX198"
printf "\n\n"
echo "============================="
printf "\n\n"
echo "allowed targets: "
for i in ${allowed_targets[@]}; do
echo $i
done
}
_main() {
os_init "$@"
#=========================================
# dynamically calling exposed targets
#=========================================
target="$1"
if [[ ! -z "$target" ]] && [[ "${allowed_targets[@]}" =~ "$target" ]]; then
$target "$@"
else
help "$@"
fi
}
_main "$@"