-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrun.sh
68 lines (56 loc) · 2.39 KB
/
run.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
#!/bin/bash
# Colors
red='\033[0;31m'
green='\033[0;32m'
clear='\033[0m'
function println {
printf "%b%b\n%b" "$2" "$1" "$clear"
}
function start_backend {
println "Starting mongodb container..." "$green"
password=$(<./.local/db_password.txt) # Load db password
if $1 ; then
docker volume create mongodb_data_container_local
docker run --rm --name mongodb -d -p 27018:27017 -v "mongodb_data_container_local:/data/db" -e "MONGO_INITDB_ROOT_USERNAME=radiator" -e "MONGO_INITDB_ROOT_PASSWORD=$password" -e "MONGO_INITDB_DATABASE=MiniTwit" mongo:latest
else
docker run --rm --name mongodb -d -p 27018:27017 -e "MONGO_INITDB_ROOT_USERNAME=radiator" -e "MONGO_INITDB_ROOT_PASSWORD=$password" -e "MONGO_INITDB_DATABASE=MiniTwit" mongo:latest
fi
println "Starting backend..." "$green"
dotnet run --project MiniTwit.Server
println "Stopping and removing mongodb container..." "$red"
docker stop mongodb
}
function setup_dotnet_secrets {
println "Creating secrets..." "$green"
password=$(<./.local/db_password.txt) # Load db password from file
connectionString="mongodb://radiator:$password@localhost:27018"
dotnet user-secrets init --project MiniTwit.Server
dotnet user-secrets set "ConnectionStrings:MiniTwit" "$connectionString" --project MiniTwit.Server
}
function print_help {
println "--- RUN HELP ---" "$green"
println "Available Commands:"
println ">> Run the backend server and database with a mounted volume"
println ">> nosave - Run the backend server and database with no mounted volume"
println ">> secrets - Set up .NET user secrets for this project and saves a local developer connection string to the registry"
println ">> inspectdb - Use flag_tool to retrieve all messages from the database"
println ">> flag <message_id>... - Use flag_tool to flag one or more messages given their ids."
println ">> -h - Print this page"
println "----------------" "$green"
}
if [ "$#" -eq 0 ]; then
start_backend true
elif [ "$1" = "nosave" ]; then
start_backend false
elif [ "$1" = "secrets" ]; then
setup_dotnet_secrets
elif [ "$1" = "inspectdb" ]; then
./flag_tool -i | less
elif [ "$1" = "flag" ]; then
./flag_tool "${@:2}"
elif [ "$1" = "-h" ]; then
print_help
else
println "Error: Unknown command" "$red"
println "For a list of available commands type './run.sh -h'" "$red"
fi