From 23124e35b9ace12f925598b257181809b9a0593d Mon Sep 17 00:00:00 2001
From: cuqmbr <dr.juniorf@gmail.com>
Date: Sun, 19 Jun 2022 20:02:21 +0300
Subject: [PATCH] docs: update README.md; add run script

---
 README.md | 24 +++++++--------
 run.sh    | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 101 insertions(+), 12 deletions(-)
 create mode 100755 run.sh

diff --git a/README.md b/README.md
index db67c8a..325d480 100644
--- a/README.md
+++ b/README.md
@@ -4,35 +4,35 @@
 
 ### Installation
 
-1. Compile the project (`[~]$ dotnet build -c Release` or in IDE)
-2. Copy ~/TicketOffice/wwwroot to the root directory of compiled project (clean database can be found in ~/wwwroot/db)
-3. Launch
+To build and then run compiled project use `[~]$ sh run.sh`
 
-### Database update
+### Security
 
-1. `[~/TicketOffice]$ dotnet-ef database drop` then confirm database deletion
-2. `[~/TicketOffice]$ dotnet-ef database update`
+The program is build for educational purposes and will not be use in the production.
+But if you want to host this web app be shure to comment/delete 30'th line in Program.cs/
 
-### Available routes
+### Miscellaneous
 
-#### № 027
+#### Available routes
+
+##### № 027
 
 - Сватове -> Красноріченське -> Кремінна -> Рубіжне -> Сєвєродонецьк -> Лисичанськ -> Сєвєродонецьк -> Рубіжне -> Кремінна -> Красноріченське -> Сватове 
 - (Date: date of the first launch of project with clean database)
 
-#### № 013
+##### № 013
 
 - Кремінна -> Рубіжне -> Сєвєродонецьк -> Станиця Луганська -> Сєвєродонецьк -> Рубіжне -> Кремінна 
 - (Date: date of the first launch of project with clean database)
 
-### Test accounts
+#### Test accounts
 
-#### User
+##### User
 
 - e-mail: user
 - password: user
 
-#### Admin
+##### Admin
 
 - e-mail: admin
 - password: admin
diff --git a/run.sh b/run.sh
new file mode 100755
index 0000000..ca20e2b
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+function Build() {
+  echo ""
+  echo "  This is your first run of the project"
+  echo "  Compiling..."
+  echo ""
+  dotnet build --configuration Release --nologo --verbosity q
+  chmod +x ./TicketOffice/bin/Release/net6.0/TicketOffice
+  cp -r  ./TicketOffice/wwwroot/ ./TicketOffice/bin/Release/net6.0/
+  echo ""
+  echo "  Project compiled."
+  echo ""
+}
+
+function RenewDatabase() {
+  echo ""
+  echo "  Renewing the database..."
+  echo ""
+  dotnet-ef database drop -f --project ./TicketOffice/
+  dotnet-ef database update --project ./TicketOffice/
+  yes | cp ./TicketOffice/wwwroot/db/TicketOffice-SQLite.db ./TicketOffice/bin/Release/net6.0/wwwroot/db/
+  echo ""
+  echo "  Database renewed."
+  echo ""
+}
+
+function Start() {
+  echo ""
+  echo "  Starting..."
+  echo ""
+  cd ./TicketOffice/bin/Release/net6.0/
+  ./TicketOffice
+}
+
+function RunScript() {
+  str=$(ls ./TicketOffice/bin | grep Release)
+
+  if [ -z "$str" ]
+  then
+    Build
+    echo ""
+    echo "  Copying essential files..."
+    echo ""
+    cp ./TicketOffice/wwwroot/ ./TicketOffice/bin/Release/net6.0/ -r
+    echo ""
+    echo "  Files copied."
+    echo ""
+    RenewDatabase
+    Start
+  else
+    Start
+  fi
+}
+
+if [ $# = 0 ]
+then
+  RunScript
+elif [ $1 = "--renew" ]
+then
+  RenewDatabase
+  Start
+  exit 0
+elif [ $1 = "--rebuild" ]
+then
+  echo ""
+  echo "  Deleting compiled project..."
+  echo ""
+  rm -Rf ./TicketOffice/bin/Release
+  echo ""
+  echo "  Deletion complete."
+  echo ""
+  Build
+  Start
+  exit 0
+elif [ $1 = "--help" ]
+then
+  echo ""
+  echo "  Available options:"
+  echo "    --renew     renew the database"
+  echo "    --rebuild   rebuild the project"
+  echo ""
+  exit 0
+elif [ -n "$1" ]
+then
+  echo "$0: unrecognized option '$1'"
+  echo "Try '$0 --help' for more information."
+  exit 0
+fi