-
-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathSocialPredict
executable file
·135 lines (121 loc) · 3.28 KB
/
SocialPredict
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
#!/bin/bash
set -e # Stop script on error
set -a # Automatically export all variables
set -x # Verbose
# Determine script's directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Calculate the absolute path to the .env file
ENV_PATH="$( readlink -f "$SCRIPT_DIR/.env" )"
ENV_FILE="--env-file $ENV_PATH"
# Function to check if a command exists
command_exists() {
type "$1" &> /dev/null
}
# Function to check if Docker && Docker Compose are installed
docker_check() {
if command_exists docker && docker compose version &> /dev/null; then
echo "Found docker compose."
COMPOSE='docker compose'
elif command_exists docker-compose; then
echo "Error: Found docker-compose V1. Please update to V2."
echo "https://docs.docker.com/compose/migrate/"
exit 1
else
echo "Error: Docker Compose is not installed."
exit 1
fi
}
# Function to Source the .env file
source_env() {
if [ -f "$ENV_PATH" ]; then
source "$ENV_PATH"
else
echo "Error: .env file not found."
exit 1
fi
}
if [ "$1" = "install" ]; then
# Echo initial message
echo "### Building and Deploying SocialPredict ..."
echo
sleep 1;
# Check that docker is installed
echo "### Checking that docker compose is installed ..."
docker_check
echo
sleep 1;
# Ask user input for Application Environment
echo "### Select Application Envrionment: "
PS3='Please enter your choice: '
options=("Development" "Production" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Development")
echo
echo "Building for Development"
echo
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/dev.sh"
unset CALLED_FROM_SOCIALPREDICT
break
;;
"Production")
echo
echo "Building for Production"
echo
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/prod.sh"
unset CALLED_FROM_SOCIALPREDICT
break
;;
"Quit")
break
;;
*) echo "Invalid option $REPLY";;
esac
done
fi
# Run Docker Exec
if [ "$1" = "exec" ]; then
source_env
export CALLED_FROM_SOCIALPREDICT=yes
if [ -z "$3" ]; then
source ./scripts/exec.sh "$2"
else
source ./scripts/exec.sh "$2" "$3"
fi
unset CALLED_FROM_SOCIALPREDICT
fi
# Run docker compose up
if [ "$1" = "up" ]; then
source_env
if [ "${APP_ENV}" = "development" ]; then
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/dev/compose_dev.sh" up -d
unset CALLED_FROM_SOCIALPREDICT
elif [ "${APP_ENV}" = "production" ]; then
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/prod/compose_prod.sh" up -d
unset CALLED_FROM_SOCIALPREDICT
else
echo "Wrong Application Environment in .env"
exit 1
fi
fi
# Run docker compose down
if [ "$1" = "down" ]; then
source_env
if [ "${APP_ENV}" = "development" ]; then
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/dev/compose_dev.sh" down
unset CALLED_FROM_SOCIALPREDICT
elif [ "${APP_ENV}" = "production" ]; then
export CALLED_FROM_SOCIALPREDICT=yes
source "$SCRIPT_DIR/scripts/prod/compose_prod.sh" down
unset CALLED_FROM_SOCIALPREDICT
else
echo "Wrong Application Environment in .env"
exit 1
fi
fi